tsql 字符串中的最后一个“出现次数”

tsql last "occurrence of" inside a string

提问人:Alberto De Caro 提问时间:2/28/2012 最后编辑:CommunityAlberto De Caro 更新时间:3/26/2020 访问量:26186

问:

我有包含逗号分隔值的字段。我需要提取列表中的最后一个元素。 我试过了这个:

select list_field, LTRIM(RTRIM(right(list_field, len(list_field) - CHARINDEX(',',list_field))))

但它返回列表的最后一部分,刚好在第一个逗号出现后开始。 例如

a,b 返回 b

a,b,c 返回 b,c

我想使用类似正则表达式的模式。在 TSQL (sql server 2008) 中是否可行? 还有其他线索吗?

SQL-Server-2008 T-SQL 字符串匹配 上次出现

评论


答:

26赞 Alex K. 2/28/2012 #1

通过反转字符串并查找第一个出现的字符来找到最后一个字符,然后从字符串右侧读取该字符串的多个字符;,

rtrim(right(list_field, charindex(',', reverse(list_field)) - 1))

(如果字段中可能没有分隔符并且您想要单个值,请使用)reverse(list_field) + ','