我有以下字符串:
bzip2,1,668,sometext,foo,bar
我怎样才能只选择
sometext,foo,bar
?第 3 个逗号前的字符串长度可能不同,并且 sometext,foo,bar
中可能有逗号。 .我希望代码尽可能简洁,即最好是 1 行代码,没有循环。但是请随时发布您想到的任何解决方案。
最佳答案
尝试这个:
做一个从第 3 个逗号到字符串末尾的子字符串。为了找到 3 个逗号,我使用了 3 次 charindex() 函数
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))
结果 :
some,text
关于sql - 从字符串中的第三个逗号中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12387559/