SQL怎么截取一个字符串数字出现前的值
关注:177 答案:2 手机版
解决时间 2021-03-04 09:23
- 提问者网友:巴黎左岸
- 2021-03-03 13:43
SQL怎么截取一个字符串数字出现前的值
最佳答案
- 二级知识专家网友:甜甜少女心
- 2021-03-03 14:30
select substring(aa,1,charindex('||',aa)-1) aa from A
charindex() --输出长度
substring() --截取
charindex() --输出长度
substring() --截取
全部回答
- 1楼网友:薯片软妹
- 2021-03-03 14:38
declare @s nvarchar(200),@s0 nvarchar(20),@s1 nvarchar(200),@s2 nvarchar(200)
set @s0='默认风格'
set @s='默认风格|#007168|23|紫色风格|#e8d6fe|21|蓝色风格|#bad2fe|22'
declare @r1 int,@r2 int
if substring(@s,len(@s),1)<>'|' set @s=@s+'|'
set @r1=charindex(@s0,@s) --文字开始位置
select @s1=substring(@s,@r1+len(@s0)+1,len(@s)) --文字+“|”以后的子串
set @r2=@r1+charindex('|',@s1)+len(@s0) --子串中第一个“|”相对于原串的起始位置
set @s2=substring(@s1,charindex('|',@s1)+1,len(@s1)) --第一个“|”后的子串
set @r2=@r2+charindex('|',@s2)
print substring(@s,1,@r1-1)+substring(@s,@r2+1,len(@s))
你可以把@s0改成任意的什么“风格”。
把这段代码修改一下,可以作成一个函数,把@s0和@s作为参数,最后的print作为返回值。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!