sql >> データベース >  >> RDS >> Oracle

regexp_substrは空の位置をスキップします

    regexp_substrは次のように機能します:

    オカレンスが1より大きい場合、データベースはパターンの最初のオカレンスに続く最初の文字で始まる2番目のオカレンスを検索します 、など。この動作は、最初のオカレンスの2番目の文字で2番目のオカレンスの検索を開始するSUBSTR関数とは異なります。

    したがって、パターン[^ |]は非パイプを検索します。つまり、連続するパイプ( "||")をスキップして、非パイプ文字を検索します。

    試してみてください:

    select trim(regexp_substr(replace('A|test||string', '|', '| '), '[^|]+', 1, 4)) from dual;
    

    これは「|」を置き換えます「|」を付けて、パターンに基づいて一致させることができます[^ |]



    1. ニージャーク待機統計:SOS_SCHEDULER_YIELD

    2. 高速ローカルストレージを求めて

    3. MacにSQLServer2019をインストールする

    4. Git分岐命名規則:ベストプラクティス