2012-02-28 49 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) + ','如果在現場&沒有分隔符,你要的單值的可能性)

相關問題