T-SQL中substring用法获取两个逗号之间内容

8860阅读 0评论2015-07-30 lwyyuan
分类:SQLServer

说明:数据库中某一列值的内容用','隔开,想要获取逗号之间值。
例如:

点击(此处)折叠或打开

  1. declare @a varchar(50)
  2. set @a ='111,3333,445666';--逗号间的值位数不固定
  3. --截取获得第一个值
  4. select SUBSTRING(@a,0,CHARINDEX(',',@a));
  5. --截取第一个后剩余字符串
  6. select SUBSTRING(@a,CHARINDEX(',',@a)+1,LEN(@a)-LEN(SUBSTRING(@a,0,CHARINDEX(',',@a))));
  7. --截取第二个字符串
  8. 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))))));
  9. --截取完第三个剩余字符串
  10. 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这三个。

上一篇:Table中td根据内容自动换行
下一篇:SQL Server2008定时备份并自动还原