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行代码,没有循环.但随意发布您认为的任何解决方案.
试试这个:
从第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)