Oracle SQLを使用して文字列をコンマで分割するにはどうすればよいですか? ここに、以下のような値を持つ列があります
123Lcq
Lf32i
jkp32m
カンマで区切りたい
1,2,3,L,c,q
L,f,3,2,i
j,k,p,3,2,m
Oracle SQLを使用して文字列をコンマで分割するにはどうすればよいですか? ここに、以下のような値を持つ列があります
123Lcq
Lf32i
jkp32m
カンマで区切りたい
1,2,3,L,c,q
L,f,3,2,i
j,k,p,3,2,m
regexp_replaceを使用できます:
SELECT substr(regexp_replace(mycol, '(.)', ',\1'), 2)
FROM mytable
正規表現はすべての文字を検索し、それらの一致する文字にはすべてコンマがプレフィックスとして付けられます。最後に、単純substr
を使用して最初のコンマを削除します。
カンマのトリミングは の代わりになる可能性がありますがsubstr
、元の値の文字列の末尾に既にカンマがある場合は動作が異なることに注意してください: トリミングすると、これらの元のカンマも削除されます。
次を使用して、目的の出力を実現できますREGEXP_REPLACE
。
SELECT
rtrim(regexp_replace(text, '(.)', '\1,'), ',') result
FROM (
SELECT '123Lcq' text FROM dual UNION ALL
SELECT 'Lf32i' text FROM dual UNION ALL
SELECT 'jkp32m' text FROM dual)