こんにちは、任意の順序で文字列にランダムに発生するパターンを見つける必要があります
列の値は次のようになります
'k=34,n=WER-RTN,l=hy33,z=device'
'k=34,l=hy33,z=device,n=WER-RTN'
'n=WER-RTN,l=hy33,z=device,k=34'
n= until ',' に対して値を取得する必要があります。それ以外の場合は、最後まで最後まで発生します。ただし、n は文字列のどこにでも出現する可能性があります。
こんにちは、任意の順序で文字列にランダムに発生するパターンを見つける必要があります
列の値は次のようになります
'k=34,n=WER-RTN,l=hy33,z=device'
'k=34,l=hy33,z=device,n=WER-RTN'
'n=WER-RTN,l=hy33,z=device,k=34'
n= until ',' に対して値を取得する必要があります。それ以外の場合は、最後まで最後まで発生します。ただし、n は文字列のどこにでも出現する可能性があります。
値を取得したい場合はWER-RTN
、次のような正規表現でその値を抽出できます。
WITH t AS (SELECT 'k=34,n=WER-RTN,l=hy33,z=device' text FROM dual
UNION
SELECT 'k=34,l=hy33,z=device,n=WER-RTN' text FROM dual
UNION
SELECT 'n=WER-RTN,l=hy33,z=device,k=34' text FROM dual)
SELECT REPLACE(REPLACE(REGEXP_SUBSTR(text,'(n=.+?,)|(n=.+?$)'),'n='),',')
FROM t
Oracle 11g 以降を使用している場合は、少し単純化できます。
REGEXP_SUBSTR (text, '(^|,)n=([^,]+)', 1, 1, '', 2)