tsql最后一个"出现"字符串内

Alb*_*aro 14 t-sql string-matching last-occurrence sql-server-2008

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

select list_field, LTRIM(RTRIM(right(list_field, len(list_field) - CHARINDEX(',',list_field))))
Run Code Online (Sandbox Code Playgroud)

但它会在第一个逗号出现后返回列表的最后一部分.例如,

a,b返回b

a,b,c返回b,c

我想使用像模式一样的正则表达式.在TSQL(sql server 2008)中是否可能?还有其他线索吗?

Ale*_* K. 26

,通过反转字符串并查找第一个匹配项找到最后一个,然后从字符串的右边读取多个字符;

rtrim(right(list_field, charindex(',', reverse(list_field)) - 1))
Run Code Online (Sandbox Code Playgroud)

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