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

Posted

技术标签:

【中文标题】tsql 字符串中最后一次“出现”【英文标题】:tsql last "occurrence of" inside a string 【发布时间】:2012-03-17 19:13:27 【问题描述】:

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

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】:

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

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

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

【讨论】:

以上是关于tsql 字符串中最后一次“出现”的主要内容,如果未能解决你的问题,请参考以下文章

如何在PostgreSQL中的字符串中查找特定字符的第一次和最后一次出现

替换字符串中最后一次出现的字符[重复]

MYSQL:查找字符串中字符的最后一次出现

TSQL:解析具有各种字符的字符串

Hive:字符串中的第一次和最后一次出现

获取另一个字符串中最后一次出现的字符串[重复]