15

コンマ区切りの値を含むフィールドがあります。リストの最後の要素を抽出する必要があります。私はこれを試しました:

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)で可能ですか?他の手がかりはありますか?

4

1 に答える 1

26

文字列を反転して最初に出現する文字列を探して最後の文字列を見つけ,、文字列の右側からその数の文字を読み取ります。

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

(reverse(list_field) + ','フィールドに区切り文字がない可能性があり、単一の値が必要な場合に使用します)

于 2012-02-28T10:03:38.667 に答える