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

列の値に基づいてOracleクエリの結果を展開する方法

    SQLフィドル

    Oracle11gR2スキーマのセットアップ

    CREATE TABLE test ( col1, col2 ) AS
              SELECT 'a', 2 FROM DUAL
    UNION ALL SELECT 'b', 3 FROM DUAL
    UNION ALL SELECT 'c', 1 FROM DUAL
    

    クエリ1

    SELECT col1,
           col2
    FROM   test t,
           TABLE(
             CAST( 
               MULTISET(
                 SELECT LEVEL
                 FROM   DUAL
                 CONNECT BY LEVEL <= t.col2
               )
               AS SYS.ODCINUMBERLIST
             )
           )
    

    結果

    | COL1 | COL2 |
    |------|------|
    |    a |    2 |
    |    a |    2 |
    |    b |    3 |
    |    b |    3 |
    |    b |    3 |
    |    c |    1 |
    


    1. AWS Aurora MySQLサーバーレス:MySQLWorkbenchから接続する方法

    2. MySQL:SQL構文のエラー...キーの近く...?

    3. SQL Server 2012:リンクされたサーバーをPostgreSQLに追加します

    4. zeusを使用したキュウリとRSpecのテスト:Postgresは他のユーザーによってアクセスされています