sql中字元串替換
Ⅰ sql語句replace怎麼替換
Replace("字元串","要被替代的字元串","替代後的字元串")
Ⅱ sql怎麼批量替換欄位里的字元串的
方法一:
varchar和nvarchar類型是支持replace,所以如果你的text不超過8000可以先轉換成前面兩種類型再使用replace 替換 text ntext 數據類型欄位的語句 。
update表名set欄位名=replace(cast(與前面一樣的欄位名asvarchar(8000)),'原本內容','想要替換成什麼')
方法二:
update[表名]set欄位名=replace(與前面一樣的欄位名,'原本內容','想要替換成什麼')
Ⅲ 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如何對某個欄位做字元替換
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)