Select Left(A, CharIndex('\', A, CharIndex('\', A) + 1)) + Substring(A, CharIndex('℃', A) + 2, CharIndex('Φ', A) - CharIndex('℃', A) - 3) + Right(A, CharIndex('\', Reverse(A))) From TEST
--創建測試環境 Create Table TEST (A Nvarchar(200)) --插入數據 Insert TEST Select N'双金属温度计\WSS-481F\0-400℃ L=300 Φ10 G3/4\本体材质:304' Union All Select N'双金属温度计\WSS-481\0-500℃ L=100 Φ8 NPT1/2"\本体材质:304' Union All Select N'双金属温度计\WSS-481\-40~80℃ L=100 Φ8 NPT1/2"\本体材质:304' Union All Select N'双金属温度计\WSS-481\-40~80℃ L=50 Φ5 M27×2\本体材质:1Cr18Ni9T' GO --測試 Select Left(A, CharIndex('\', A, CharIndex('\', A) + 1)) + Substring(A, CharIndex('℃', A) + 2, CharIndex('Φ', A) - CharIndex('℃', A) - 3) + Right(A, CharIndex('\', Reverse(A))) As A From TEST --刪除測試環境 Drop Table TEST GO --結果 /* A 双金属温度计\WSS-481F\L=300\本体材质:304 双金属温度计\WSS-481\L=100\本体材质:304 双金属温度计\WSS-481\L=100\本体材质:304 双金属温度计\WSS-481\L=50\本体材质:1Cr18Ni9T */
set 字段 = replace(replace(字段,'0-600C ',''),' @10 G1/2','')
declare @str varchar(100),@find_str varchar(100),@find_str1 varchar(1000)
select @str='双金属温度计\WSS-481\0-600C L=650 @10 G1/2"\本体材质:1Cr18Ni9Ti',@find_str='0-600C ',@find_str1='@10 G1/2'select replace(replace(@str,@find_str,''),@find_str1,'')
/*
----------------------结果---------------------------
双金属温度计\WSS-481\L=650 "\本体材质:1Cr18Ni9Ti(1 row(s) affected)
*/
双金属温度计\WSS-481\L=650\本体材质:1Cr18Ni9Ti请教如何处理?有多条这样的字段如何处理?
-----------------------------------------------------
declare @s varchar(100)
set @s=N'双金属温度计\WSS-481\0-600C L=650 @10 G1/2"\本体材质:1Cr18Ni9Ti'
set @s=replace(replace(replace(@s,'0-600C',''),'@10 G1/2"',''),' ','')
select @s
/*
双金属温度计\WSS-481\L=650\本体材质:1Cr18Ni9Ti
*/
双金属温度计\WSS-481\0-600C L=650 @10 G1/2"\本体材质:1Cr18Ni9Ti想把其中的0-600C和@10 G1/2"删除,处理后变成字段变成下面的样子:
双金属温度计\WSS-481\L=650\本体材质:1Cr18Ni9Ti请教如何处理?有多条这样的字段如何处理?update tb
set col = replace(col , '0-600C' , '')
update tb
set col = replace(col , '@10 G1/2' , '')
这里罗嗦一下,如果想要把一个字符串中的某一个或者几个字符替换成空或者另外一个或几个字符,可以使用replace函数,语法:
replace('需要替换的目标字符串','想要替换的字符或字符串','要替换成的字符串')
如果还不明白,请参阅联机帮助
Select Left(A, CharIndex('\', A, CharIndex('\', A) + 1)) +
Substring(A, CharIndex('℃', A) + 2, CharIndex('Φ', A) - CharIndex('℃', A) - 3) +
Right(A, CharIndex('\', Reverse(A)))
From TEST
Create Table TEST
(A Nvarchar(200))
--插入數據
Insert TEST Select N'双金属温度计\WSS-481F\0-400℃ L=300 Φ10 G3/4\本体材质:304'
Union All Select N'双金属温度计\WSS-481\0-500℃ L=100 Φ8 NPT1/2"\本体材质:304'
Union All Select N'双金属温度计\WSS-481\-40~80℃ L=100 Φ8 NPT1/2"\本体材质:304'
Union All Select N'双金属温度计\WSS-481\-40~80℃ L=50 Φ5 M27×2\本体材质:1Cr18Ni9T'
GO
--測試
Select Left(A, CharIndex('\', A, CharIndex('\', A) + 1)) +
Substring(A, CharIndex('℃', A) + 2, CharIndex('Φ', A) - CharIndex('℃', A) - 3) +
Right(A, CharIndex('\', Reverse(A))) As A
From TEST
--刪除測試環境
Drop Table TEST
GO
--結果
/*
A
双金属温度计\WSS-481F\L=300\本体材质:304
双金属温度计\WSS-481\L=100\本体材质:304
双金属温度计\WSS-481\L=100\本体材质:304
双金属温度计\WSS-481\L=50\本体材质:1Cr18Ni9T
*/