日期:2014-05-19  浏览次数:20377 次

从字符串中去一部份
select   @code= '102,101,02,03,15 '
我要取101,该如何写?
首先code是变量,也许select   @code= '02,201,22,23,25 '
这时我要的就是201了。
就是取第一个,号和第2个,号之间的值


------解决方案--------------------
select substring(@code,charindex( ', ',@code)+1,charindex( ', ',stuff(@code,charindex( ', ',@code),1, ' '))-charindex( ', ',@code))
------解决方案--------------------
declare @code varchar(100)
declare @rt varchar(20)
select @code= '102,101,02,03,15 '
set @rt=substring(@code,charindex( ', ',@code)+1,8000)
set @rt=left(@rt,charindex( ', ',@rt)-1)
print @rt


------解决方案--------------------
declare @code varchar(50)
set @code= '102,101,02,03,15 '
print substring(@code,
CHARINDEX( ', ',@code)+1,
CHARINDEX( ', ',@code,CHARINDEX( ', ',@code)+1)-CHARINDEX( ', ',@code)-1
)
------解决方案--------------------
declare @code1 varchar(200),@code2 varchar(200)
select @code1= '102,101,02,03,15 ',@code2= '1,2,3,4,5,6,7 '
select len(@code1)-len(replace(@code1, ', ', ' '))+1,
len(@code2)-len(replace(@code2, ', ', ' '))+1
/*
----------- -----------
5 7

(所影响的行数为 1 行)
*/