SQLSERVER字符串截取

来源:互联网 发布:it云端 编辑:程序博客网 时间:2024/04/30 07:57
 
---截取字符串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'+工号