说明:数据库中某一列值的内容用','隔开,想要获取逗号之间值。
例如:
-
declare @a varchar(50)
-
set @a ='111,3333,445666';--逗号间的值位数不固定
-
--截取获得第一个值
-
select SUBSTRING(@a,0,CHARINDEX(',',@a));
-
--截取第一个后剩余字符串
-
select SUBSTRING(@a,CHARINDEX(',',@a)+1,LEN(@a)-LEN(SUBSTRING(@a,0,CHARINDEX(',',@a))));
-
--截取第二个字符串
-
select SUBSTRING(SUBSTRING(@a,CHARINDEX(',',@a)+1,LEN(@a)-LEN(SUBSTRING(@a,0,CHARINDEX(',',@a)))),0,CHARINDEX(',',SUBSTRING(@a,CHARINDEX(',',@a)+1,LEN(@a)-LEN(SUBSTRING(@a,0,CHARINDEX(',',@a))))));
-
--截取完第三个剩余字符串
-
select SUBSTRING(SUBSTRING(@a,CHARINDEX(',',@a)+1,LEN(@a)-LEN(SUBSTRING(@a,0,CHARINDEX(',',@a)))),CHARINDEX(',',SUBSTRING(@a,CHARINDEX(',',@a)+1,LEN(@a)-LEN(SUBSTRING(@a,0,CHARINDEX(',',@a)))))+1,LEN(SUBSTRING(@a,CHARINDEX(',',@a)+1,LEN(@a)-LEN(SUBSTRING(@a,0,CHARINDEX(',',@a)))))-LEN(SUBSTRING(SUBSTRING(@a,CHARINDEX(',',@a)+1,LEN(@a)-LEN(SUBSTRING(@a,0,CHARINDEX(',',@a)))),0,CHARINDEX(',',SUBSTRING(@a,CHARINDEX(',',@a)+1,LEN(@a)-LEN(SUBSTRING(@a,0,CHARINDEX(',',@a))))))));
主要用到的函数为:substring、charindex、len这三个。
阅读(8874) | 评论(0) | 转发(0) |