TSQL字符串中最后一次出现的"occurrence"

15

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

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)中是否可能?还有其他提示吗?

1个回答

26

通过将字符串反转并查找第一个出现的逗号来找到最后一个逗号,然后从字符串右侧读取相应数量的字符。

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接