ホームページ >データベース >mysql チュートリアル >REGEXP_SUBSTR() を使用して NULL を含むカンマ区切りリストから特定の値を確実に抽出する方法
NULL を含むリストから個々の値を選択するための正規表現
問題:
REGEXP_SUBSTR () は失敗しますnull が存在する場合に、カンマ区切りのリストから目的の n 番目の値を取得します。値が null の場合、n 番目の出現として次の null 以外の値を返します。
解決策:
この問題を解決するには、REGEXP_SUBSTR() 式を変更します。
REGEXP_SUBSTR('1,,3,4,5', '(.*?)(,|$)', 1, 2, NULL, 1)
この式は、次のようにして目的のデータを取得します。ステップ:
再利用可能な関数:
より単純な場合より便利な使用方法として、この変更された REGEXP_SUBSTR() 式を PL/SQL にカプセル化できます。関数:
FUNCTION GET_LIST_ELEMENT(string_in VARCHAR2, element_in NUMBER, delimiter_in VARCHAR2 DEFAULT ',') RETURN VARCHAR2 IS BEGIN RETURN REGEXP_SUBSTR(string_in, '(.*?)(\'||delimiter_in||'|$)', 1, element_in, NULL, 1); END GET_LIST_ELEMENT;
使用例:
リスト '123,222,,432,555' から 4 番目の要素を取得するには:
select get_list_element('123,222,,432,555', 4) from dual;
以上がREGEXP_SUBSTR() を使用して NULL を含むカンマ区切りリストから特定の値を確実に抽出する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。