SQLSERVER字符串截取
截取字符串A的第一个\左边的字符串
输出结果: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'+工号