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

SQLでネストされた選択を使用する場合、ピボットは機能しません

    動的式をピボットテーブルへの入力として直接追加することはできません。PL/SQLブロックを介して変数内のテーブルのすべての列を取得し、Oracleが期待する方法でそれを渡すこのような方法を試すことができます。ピボットテーブルの機能。

    SET serveroutput ON;
    
    
        DECLARE 
        sqlquery VARCHAR(32767);
        cols VARCHAR2(32767);
        BEGIN
    
          SELECT listagg('''' || column_name || '''',   ',') within
          GROUP(
          ORDER BY column_name)
          INTO cols
          FROM
            (SELECT DISTINCT column_name
             FROM all_tab_columns
             WHERE TABLE_NAME = 'TABLE_NAME')
          ;
    
          sqlquery := '      
        SELECT * FROM
        (
          SELECT table_name, column_name
          FROM ALL_TAB_COLUMNS
          WHERE
              table_name = ''TABLE_NAME''
        )
        PIVOT
        (
          MIN(column_name)
          FOR column_name IN ( 
                ''||cols||''
            )
          )
          ORDER BY table_name';
    
          DBMS_OUTPUT.PUT_LINE(sqlquery);
    
          EXECUTE IMMEDIATE sqlquery;
    
        END;
        /
    



    1. MySQLINTの意味

    2. エラーデータを要約するPostgresSQLクエリ

    3. mysqlSORTBY一意の単語の一致量

    4. ajaxpostリクエストを使用して2つのアレイを送信する