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

标签 sql sql-server sql-server-2008 tsql

我有以下字符串:

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/

相关文章:

c# - SQL Server 列到组合框?

sql - 创建与 SQL Server 的所有可能组合

sql - 将 DateTime 分组为 5、15、30 和 60 分钟间隔

sql - 使用特定行的 Id 对行进行分组

mysql - 如何将 sql 查询的结果转换为具有特定格式的 html 表

sql - 以两种不同的方式汇总数据

performance - 向 SQL Server 2008 数据库添加非强制外键是否会影响性能?

database - 如何通过查询将SQL Server中数据库中所有对象的权限授予数据库用户

c# - 以下 sql 查询的 linq 等价物是什么

c# - 使用异步等待在 ForEach 中获取 "The connection does not support MultipleActiveResultSets"