SQLSERVER字符串截取

 
---截取字符串A的第一個/左邊的字符串
select left(A,charindex('/',A)-1)
輸出結果:F:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

---截取/中間的字符串
select  left(stuff(A,1,charindex('/',A),''),charindex('/',stuff(A,1,charindex('/',A),''))-1)
輸出結果:photo
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


---截取最後一個/後面的字符串
select  reverse(left(reverse(A),charindex('/',reverse(A))-1))
輸出結果:Winter Leaves.jpg

declare @end int --截取的結束位置

declare @www varchar(100) --要處理的字符串

set @www = 'http://www.baidu.com/zhidao/'

set @www = REPLACE(@www, 'http://', '') --替換掉http://

set @end = PATINDEX('%/%', @www) --得到第一次出現'/'的位置

set @www = SUBSTRING(@www, 0, @end) --截取

select @www

存儲過程如下:

IF EXISTS (SELECT name FROM sysobjects

WHERE name = 'gs_MySub' AND type = 'P')

DROP PROCEDURE gs_MySub

GO

create proc gs_MySub

@www varchar(100),

@result varchar(100) output,

@end int = 0

as

set @www = REPLACE(@www, 'http://', '') --替換掉http://

set @end = PATINDEX('%/%', @www) --得到第一次出現'/'的位置

set @result = SUBSTRING(@www, 0, @end) --截取

GO

//測試代碼

declare @result varchar(100)

exec gs_MySub 'http://www.baidu.com/zhidao/', @result output

print @result

表名:job
工號 姓名 年齡
000123 aaa 25
000124 bbb 26
000125 ccc 22

現需將'工號'字段的內容批量改成前面加AD,即結果如AD000123、AD000124、AD000125

.首先你的‘工號’列要擴大容量
alter table job alter column 工號 varchar(20)
2.UPDATE job SET 工號='AD'+工號

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章