sql替換字元
⑴ sql怎麼批量替換欄位里的字元串的
方法一:
varchar和nvarchar類型是支持replace,所以如果你的text不超過8000可以先轉換成前面兩種類型再使用replace 替換 text ntext 數據類型欄位的語句 。
update表名set欄位名=replace(cast(與前面一樣的欄位名asvarchar(8000)),'原本內容','想要替換成什麼')
方法二:
update[表名]set欄位名=replace(與前面一樣的欄位名,'原本內容','想要替換成什麼')
⑵ 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)
⑶ 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(』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
⑸ SQL語句替換某表某欄位中第幾字元
用replace啊
replace(str,from_str,to_str)
在字元串
str
中所有出現的字元串
from_str
均被
to_str替換,然後返回這個字元串
⑹ SQL語句 如何實現替換欄位中部分字元
方法一: update table_name set professional = ',演員,' where professional = ',-99 ,演員'
⑺ 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
⑻ SQL如何將一列表中的字元替換成另外一個字元
可以參考這條語句:
update Node
set PhyName=『攝氏度』
where NodeTypeID=224
類似這種情況,全都可以用以下格式處理:
update 表名
set 欄位名=新的內容
where 條件
其中『條件』可以是NodeTypeID=224這種,只要表中記錄符合條件的,將會執行更新。
只要明白了這個,類似的情況都能解決了。
⑼ 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
⑽ sql 替換某一位置字元
sql server 2005及以上版本可使用STUFF函數。
語法:
STUFF(character_expression,start,length,character_expression)
參數說明:
character_expression:一個字元數據表達式。character_expression可以是常量、變數,也可以是字元列或二進制數據列。
start:一個整數值,指定刪除和插入的開始位置。如果start或length為負,則返回空字元串。如果start比第一個character_expression長,則返回空字元串。start可以是bigint類型。
length:一個整數,指定要刪除的字元數。如果length比第一個character_expression長,則最多刪除到最後一個character_expression中的最後一個字元。length可以是bigint類型。
返回類型
如果character_expression是受支持的字元數據類型,則返回字元數據。如果character_expression是一個受支持的 binary 數據類型,則返回二進制數據。
注釋
如果開始位置或長度值是負數,或者如果開始位置大於第一個字元串的長度,將返回空字元串。如果要刪除的長度大於第一個字元串的長度,將刪除到第一個字元串中的第一個字元。
如果結果值大於返回類型支持的最大值,則產生錯誤。
示例
以下示例在第一個字元串abcdef中刪除從第2個位置(字元b)開始的三個字元,然後在刪除的起始位置插入第二個字元串,從而創建並返回一個字元串。
SELECTSTUFF('abcdef',2,3,'ijklmn');
GO
下面是結果集:
---------
aijklmnef
(1 row(s) affected)
以上摘自:https://msdn.microsoft.com/zh-cn/library/ms188043(v=sql.105).aspx