當前位置:首頁 » 編程語言 » sqlserver替換字元串
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sqlserver替換字元串

發布時間: 2022-01-23 04:10:37

sqlserver儲存過程中過濾字元串 @ id varchar(16) 我想替換掉或者過濾掉 @id 中含有 ' 或者 delete

declare@Avarchar(100);
set@A='AAAAAAbb';
set@A=REPLACE(@A,'b','')
select@A
--顯示結果AAAAAA

自己看著辦吧,我只能幫助這么多了,你說的若是特殊字元單引號的話太他媽麻煩了,不想拼

❷ sql server 將字元串第二字元替換為另外一個字元的 方法

update emp_info_master set chn_name=replace(chn_name,'靜','可')where chn_name like '%靜%' and chn_name not like '%靜靜%'

查詢條件為:名稱中有靜字,但不能是靜靜,這樣就滿足你的要求了。

❸ 求助!SQLServer資料庫 內容關鍵字替換 語句

sql函數中就有replace函數可以使用

也可以使用字元串函數 處理charindex,substring等

❹ sql怎麼替換字元串中的某個字元

replace(』stringtobechanged』,』keystringtobereplaced』,』stringforreplace』):字元串替換
select replace(』acezih』.』cez』,』bhr』) from al; abhrih
select replace(』acezih』.』czh』,』bhr』) from al; acezih
translate(』stringtobechanged』,』keycharactertobereplaced』,』charactersfroreplace』):字元逐個替換
select translate(』acezih』.』cez,』bhr』)from al; abhrih
select translate(』acezih』.』czh』,』bhr』) from al; abehir

❺ sqlserver 中ntext欄位的批量替換(updatetext的用法)

一、問題描述:
1。在Sql
Server
中,ntext/text/image
欄位不允許應用replace函數替換內容;
2。通過convert欄位轉換,可以把ntext欄位轉換為varchar(8000),然後用Relpace函數替換,不過,此方法,對於欄位長度大於8000的ntext欄位無效。
二、問題解決
整理通用存儲過程,代碼如下:
復制代碼
代碼如下:
CREATE
procere
[dbo].[Proc_UpdateNTextField]
@TargetTable
nvarchar(1000),
--目標表名
@TargetField
nvarchar(1000),
--目標欄位名
@PKField
nvarchar(1000),
--該表主鍵欄位名
@otxt
nvarchar(1000),
--需要替換的字元串
@ntxt
nvarchar(1000)
--替換後的字元串
as
begin
declare
@SqlStr
nvarchar(4000)
set
@SqlStr
=
'
declare
@txtlen
int
'
set
@SqlStr
=
@SqlStr
+
'
set
@txtlen
=
len('''
+
@otxt
+
''')
'
set
@SqlStr
=
@SqlStr
+
'
declare
@pos
int
'
set
@SqlStr
=
@SqlStr
+
'
set
@pos
=
0
'
set
@SqlStr
=
@SqlStr
+
'declare
curs
cursor
local
fast_forward
for
select
'
set
@SqlStr
=
@SqlStr
+
@PKField
+
'
,
textptr('
+
@TargetField
+')
from
'
+
@TargetTable
+'
where
'
+
@TargetField
+
'
like
''%'
+
@otxt
+'%'''
set
@SqlStr
=
@SqlStr
+
'
declare
@ptr
binary(16)
'
set
@SqlStr
=
@SqlStr
+
'
declare
@id
char(32)
'
set
@SqlStr
=
@SqlStr
+
'
open
curs
'
set
@SqlStr
=
@SqlStr
+
'
fetch
next
from
curs
into
@id,
@ptr
'
set
@SqlStr
=
@SqlStr
+
'
while
@@fetch_status
=
0
'
set
@SqlStr
=
@SqlStr
+
'
begin
'
set
@SqlStr
=
@SqlStr
+
'
select
@pos=
patindex(''%'
+
@otxt
+
'%'',ProctDesc)
from
ProctTemp
where
ProctID=@id
'
set
@SqlStr
=
@SqlStr
+
'
while
@pos>0
'
set
@SqlStr
=
@SqlStr
+
'
begin
'
set
@SqlStr
=
@SqlStr
+
'
set
@pos=@pos-1
'
set
@SqlStr
=
@SqlStr
+
'
updatetext
'
+
@TargetTable
+
'.'
+@TargetField
+
'
@ptr
@pos
@txtlen
'''
+
@ntxt
+
'''
'
set
@SqlStr
=
@SqlStr
+
'
select
@pos=
patindex(''%'
+
@otxt
+
'%'',ProctDesc)
from
ProctTemp
where
ProctID=@id
'
set
@SqlStr
=
@SqlStr
+
'
end
'
set
@SqlStr
=
@SqlStr
+
'
fetch
next
from
curs
into
@id,
@ptr
'
set
@SqlStr
=
@SqlStr
+
'
end
'
set
@SqlStr
=
@SqlStr
+
'
close
curs
'
set
@SqlStr
=
@SqlStr
+
'
deallocate
curs
'
EXECUTE
sp_executesql
@SqlStr
end

❻ sql 替換指定字元串

這個很簡單,
str="\data\2003\2003-1-<001-002>.tif "
str=replace(str,"-002","-001")
現在的str就是你要的結果,
你可以定義一個要貼換的字元串,用來貼換的字元串
如:oldstr="-002"
newstr="-001"
str=replace(str,oldstr,newstr)

❼ sqlserver 字元串替換為什麽執行不成功

@Count
nvarchar(5)='',
@AdPozition
nvarchar(50)='',
@AdType
nvarchar(50)=''
參數都必須有值,最起碼要有個默認值,要不然拼寫sql語句的時候整條語句都是空

❽ sql 替換 兩特定字元(含特定字元)之間的欄位

如果我說如果啊,如果是abc?def?ghi?jkl你打算怎麼換是abc+jkl還是abc++jkl,當然如果沒有這種情況算我沒說。
還有你什麼資料庫啊,不同的資料庫用到的函數也不是完全一樣的。當然如果都是三位的那就簡單了,如果不都是3位的,那在用下面的方法
比如定位中oracle用instr,sqlserver中用charindex
(1)定位,定位?的位置,不知道你的?是不是字元型的,我假設它是字元型的
oracle:instr('?',欄位,1,1)(第一次出現問號的位置),instr('?',欄位,-1,1)(最後一次出現問號的位置),如果只有兩個問號也可以寫成instr('?',欄位,1,2)
sqlserver:charindex('?',欄位,1)(第一次出現問號),len(欄位)-(charindex('?',reverse(欄位))-1)(最後一次出現問號),如果只有兩個問號,可以寫成charindex('?',欄位,charindex('?',欄位,1)+1)
(2)截取需要替換的字元串substring函數,這個二者基本差不多
(3)替換,二者也是大同小異(函數基本相同,但寫法上有些區別),我就寫一個。
oracle: select replace(欄位,subter(欄位,instr('?',欄位,1,1),instr('?',欄位,-1,1)),'+') from table
至於sqlserver的那就自己完成吧,oracle我的把握大一些,sqlserver需要試驗才行,我這里可沒有相關環境。
註:我忘了問號需不需要轉譯了,這個你自己試試看吧。

❾ sql怎麼批量替換欄位里的字元串的

方法一:
varchar和nvarchar類型是支持replace,所以如果你的text不超過8000可以先轉換成前面兩種類型再使用replace 替換 text ntext 數據類型欄位的語句 。

update表名set欄位名=replace(cast(與前面一樣的欄位名asvarchar(8000)),'原本內容','想要替換成什麼')

方法二:

update[表名]set欄位名=replace(與前面一樣的欄位名,'原本內容','想要替換成什麼')

❿ SQL中字元串的替換

select
id,stuff(name,1,6,'')
as
name
from
t_table
--stuff(列名,從第幾個字元開始,長度,替換成什麼)
--如上例,就是從第一個字元「第」開始,長度為6,也就是「第n(名字)」替換成空字元
--對於變長的。。那麼這個。
就行了
select
id,substring(name,charindex(')',name)+1,len(name))
as
name
from
t_table