2012-02-28 48 views
14

我有字段包含逗号分隔值。我需要提取列表中的最后一个元素。 我曾尝试与此:tsql上一次出现“出现”字符串内

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)中可能吗? 还有其他线索吗?

回答

26

找到最后一个,,方法是反转字符串并查找第一个匹配项,然后从字符串的右侧读取许多字符;

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

(使用reverse(list_field) + ','如果在现场&没有分隔符,你要的单值的可能性)

相关问题