我有一个包含逗号分隔值的字段。我需要提取列表中的最后一个元素。 我尝试了以下代码:
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)中是否可能?还有其他提示吗?
我有一个包含逗号分隔值的字段。我需要提取列表中的最后一个元素。 我尝试了以下代码:
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)中是否可能?还有其他提示吗?
通过将字符串反转并查找第一个出现的逗号来找到最后一个逗号,然后从字符串右侧读取相应数量的字符。
rtrim(right(list_field, charindex(',', reverse(list_field)) - 1))
如果字段中没有分隔符并且您想要单个值,那么请使用 reverse(list_field) + ','
。