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

OracleREGEXP_SUBSTRからSUBSTR+INSTR

    DUALのように、コードが機能しません テーブルにcodeがありません 桁;ただし、その列を持つ別のテーブルを使用していると仮定した場合:

    CREATE TABLE table_name ( code ) AS
    SELECT '[1],[22],[333],[4444],[55555],[666666],[7777777],[88888888],[999999999],[0000000000]' FROM DUAL
    

    次に、再帰的なサブクエリ因数分解句を使用できます。

    WITH rsqfc ( code, start_pos, end_pos ) AS (
      SELECT code,
             1,
             INSTR( code, ',', 1 )
      FROM   table_name
    UNION ALL
      SELECT code,
             end_pos + 1,
             INSTR( code, ',', end_pos + 1 )
      FROM   rsqfc
      WHERE  end_pos > 0
    )
    SELECT DISTINCT
           REPLACE(
             CASE end_pos
             WHEN 0
             THEN SUBSTR( code, start_pos + 1, 8 )
             ELSE SUBSTR( code, start_pos + 1, LEAST( end_pos - start_pos - 1, 8 ) )
             END,
             ']'
           ) AS code
    FROM   rsqfc;
    

    どの出力:

    db <> fiddle こちら




    1. brew servicesリストはmysqlが実行されていることを示していますが、接続できません

    2. JAXBでJAXBElementが必要な理由と時期

    3. DBaaS、クラウド、透過的なクエリルーティング

    4. mysqlパスワード検証をオフにするにはどうすればよいですか?