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

OraclePLSQLで動的ピボットを作成する方法

    以下のようにprocを変更します

              BEGIN
                 -- Use another variable and initialize with count(*) from prev_month (say totalCount)
                 -- Initialize another counter say curCount = 0
                 -- 
                 FOR x IN (select time_stamp from prev_month)
    
                 LOOP
                    -- increment curCount. If curCount = totalCount 
                    -- then use 
                    --  l_query := l_query|| REPLACE (' TO_DATE(''$X$'',''yyyymmdd'') as DAY_$X$_TOTAL ','$X$',x.time_stamp);   --your code without comma at the end.
                    -- else 
                    l_query := l_query|| REPLACE (' TO_DATE(''$X$'',''yyyymmdd'') as DAY_$X$_TOTAL, ','$X$',x.time_stamp);
                   -- end if.
                 END LOOP;
    

    編集:正確な構文

               BEGIN
                     curCount := 0;
                     SELECT COUNT (*) INTO o_count FROM prev_month; 
                     FOR x IN (select time_stamp from prev_month)
    
                     LOOP
                        curCount := curCount +1; -- increment curCount. 
                        IF curCount = o_count THEN
                             l_query :=l_query|| REPLACE (' TO_DATE(''$X$'',''yyyymmdd'') as DAY_$X$_TOTAL ','$X$',x.time_stamp); 
                        else 
                             l_query := l_query|| REPLACE (' TO_DATE(''$X$'',''yyyymmdd'') as DAY_$X$_TOTAL, ','$X$',x.time_stamp);
                       end if.
                     END LOOP;
    


    1. PRVG-2027ファイルの所有者がノード間で一貫していません

    2. MySQLで名前utf8を設定しますか?

    3. sqoop(1.4.5)を使用してmysqlデータをhdfs(hadoop 2.4.1)にインポートします

    4. ユーザー定義タイプがPostgreSQLにすでに存在するかどうかを確認します