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

Oracle 正規表現の問題

    * 演算子はデフォルトで「貪欲」です . distinct の間の任意の文字を許可しています および ) 、任意の量で。最初の ) を含む

    EatÅPeach が提案したように、? で非貪欲にすることができます。 :

    ここでは、.*? を使用します。 .* の代わりに :

    select regexp_substr(
      'select count(distinct empno), count(distinct deptno) from emp',
        'count\(distinct.*?\)')
    from dual;
      

    または、) 以外の任意の文字を指定することもできます [^)]*.* の代わりに .

    select regexp_substr(
      'select count(distinct empno), count(distinct deptno) from emp',
        'count\(distinct[^)]*\)')
    from dual;
      

    1. WordPressリンクはすべてダブルURLにリダイレクトされます

    2. promiseを使用したoracledbチェーンSQL呼び出し

    3. MySQL-PHP:テーブル行に結果を表示(行ごとに5つの結果)

    4. SQLServerの日付フォーマット関数