A. sql server 將字元串第二字元替換為另外一個字元的 方法
update emp_info_master set chn_name=replace(chn_name,'靜','可')where chn_name like '%靜%' and chn_name not like '%靜靜%'
查詢條件為:名稱中有靜字,但不能是靜靜,這樣就滿足你的要求了。
B. sqlserver 字元串替換為什麽執行不成功
@Count
nvarchar(5)='',
@AdPozition
nvarchar(50)='',
@AdType
nvarchar(50)=''
參數都必須有值,最起碼要有個默認值,要不然拼寫sql語句的時候整條語句都是空
C. 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
D. 怎樣批量查找替換整個sqlserver資料庫中的字元,網站換域名了,
沒辦法,不可能一個庫一下全換了,沒那樣的操作。
但你可以這樣操作。
1檢查每張表的每個欄位,查每個字元型的,欄位,是否有可能有要修改的數據。這個的手工一個一個的確定下來。
2update 表名 set 欄位1=replace (欄位1,'原網址','新網址') .
這樣一個一個的替的話,也快,
REPLACE
用第三個表達式替換第一個字元串表達式中出現的所有第二個給定字元串表達式。
語法
REPLACE ( 'string_expression1' , 'string_expression2' , 'string_expression3' )
參數
'string_expression1'
待搜索的字元串表達式。string_expression1 可以是字元數據或二進制數據。
'string_expression2'
待查找的字元串表達式。string_expression2 可以是字元數據或二進制數據。
'string_expression3'
替換用的字元串表達式。string_expression3 可以是字元數據或二進制數據。
返回類型
如果 string_expression(1、2 或 3)是支持的字元數據類型之一,則返回字元數據。如果 string_expression(1、2 或 3)是支持的 binary 數據類型之一,則返回二進制數據。
示例
下例用 xxx 替換 abcdefghi 中的字元串 cde。
SELECT REPLACE('abcdefghicde','cde','xxx')
GO
下面是結果集:
------------
abxxxfghixxx
(1 row(s) affected)
E. SQL替換特定字元串問題
sqlserver:
update table set col=left(col,charindex('ABC',col)+3)
F. sql 替換指定字元串
CreateFunction[dbo].[MyReplace](@RegVarchar(1000),@SourceVarchar(4000),@StrVarchar(1000))
returnssql_variant
As
Begin
Declare@ErrInt
Declare@objInt
Declare@Rstsql_variant
EXEC@Err=Sp_OACreate'VBScript.RegExp',@objOUTPUT
If@Err<>0GoToLB
EXEC@Err=Sp_OASetProperty@obj,'Pattern',@Reg
If@Err<>0GoToLB
EXEC@Err=Sp_OASetProperty@obj,'Global','True'
If@Err<>0GoToLB
EXEC@Err=Sp_OASetProperty@obj,'IgnoreCase','False'
If@Err<>0GoToLB
EXEC@Err=Sp_OAMethod@obj,'Replace',@RstOUTPUT,@source,@Str
If@Err<>0GoToLB
EXEC@Err=Sp_OADestroy@obj
If@Err<>0GoToLB
Return@Rst
LB:
EXECSp_OADestroy@obj
RETURNNull
End
GO
--開啟OleAutomationProceres配置
/*
execsp_configure'showadvancedoptions',1
reconfigure
execsp_configure'OleAutomationProceres',1
reconfigure
execsp_configure'showadvancedoptions',0
reconfigure
*/
--建表
CreateTableT
(
idint,
codeVarchar(100)
)
--插入數據
InsertIntoTValues(1,'code001,pass002')
InsertIntoTValues(2,'pass001,code002,code003')
InsertIntoTValues(3,'word009,code009')
InsertIntoTValues(4,'code090,word010,code089')
InsertIntoTValues(5,'code008')
--更新
--正則表達式替換(把code+3個數字的都替換成num001)
Select*,dbo.MyReplace('coded{3}',code,'num001')As替換後Fromt
UpdateTSetCode=dbo.MyReplace('coded{3}',code,'num001')
G. sqlserver2005批量替換字元
額,思路是,比如用java操作資料庫。那麼先查詢出所有的數據,然後循環用java來替換這些字元串,再進行更新就可以了
H. 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需要試驗才行,我這里可沒有相關環境。
註:我忘了問號需不需要轉譯了,這個你自己試試看吧。
I. sqlserver儲存過程中過濾字元串 @ id varchar(16) 我想替換掉或者過濾掉 @id 中含有 ' 或者 delete
declare@Avarchar(100);
set@A='AAAAAAbb';
set@A=REPLACE(@A,'b','')
select@A
--顯示結果AAAAAA
自己看著辦吧,我只能幫助這么多了,你說的若是特殊字元單引號的話太他媽麻煩了,不想拼
J. sql怎麼批量替換欄位里的字元串的
方法一:
varchar和nvarchar類型是支持replace,所以如果你的text不超過8000可以先轉換成前面兩種類型再使用replace 替換 text ntext 數據類型欄位的語句 。
update表名set欄位名=replace(cast(與前面一樣的欄位名asvarchar(8000)),'原本內容','想要替換成什麼')
方法二:
update[表名]set欄位名=replace(與前面一樣的欄位名,'原本內容','想要替換成什麼')