我有一个包含逗号分隔值的字段。我需要提取列表中的最后一个元素。我试过这个:
select list_field, LTRIM(RTRIM(right(list_field, len(list_field) - CHARINDEX(',',list_field))))
但它返回列表的最后一部分,从第一个逗号出现之后开始。例如,
a、 b返回b
a、 b,c返回b,c
我想使用类似regex的模式。这在TSQL(sql server 2008)中可能吗?还有其他线索吗?
通过反转字符串并查找第一个字符来查找最后一个,
,然后从字符串右侧读取那么多字符;
rtrim(right(list_field, charindex(',', reverse(list_field)) - 1))
(如果字段中可能没有分隔符,请使用reverse(list_field) + ','
&您需要单个值)