例如:
点击(此处)折叠或打开
-
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))))))));