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'+工号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值