从字符串中的第三个逗号中选择

Dan*_*ett 2 sql t-sql sql-server sql-server-2008

我有以下字符串:

bzip2,1,668,sometext,foo,bar
Run Code Online (Sandbox Code Playgroud)

我怎么才能选择sometext,foo,bar?第三个逗号之前的字符串长度可能不同,并且可能有逗号sometext,foo,bar.

我想尽可能简洁的代码,即最好是1行代码,没有循环.但随意发布您认为的任何解决方案.

Joe*_*eph 7

试试这个:

从第3个逗号到字符串末尾的子字符串.要查找3个逗号,我使用charindex()函数3次

  declare @str varchar(50)='bzip2,1,668,some,text'

  select substring(@str,
  CHARINDEX(',',@str,CHARINDEX(',',@str,CHARINDEX(',',@str,1)+1)+1)+1,
  LEN(@str)-CHARINDEX(',',@str,CHARINDEX(',',@str,CHARINDEX(',',@str,1)+1)+1))
Run Code Online (Sandbox Code Playgroud)

结果:

some,text
Run Code Online (Sandbox Code Playgroud)