Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Cara membuat pivot dinamis di Oracle PL SQL

Ubah proc Anda seperti di bawah ini

          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;

EDIT:Sintaks yang tepat

           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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tidak dapat memperbaiki Kesalahan:Pernyataan PL/SQL diabaikan

  2. Mendapatkan ORA-03115:tipe data jaringan atau kesalahan representasi yang tidak didukung saat mengambil array varchar dari pl/sql anonim

  3. Membuat pemicu dengan pernyataan kasus

  4. Bagaimana menemukan LEFT OUTER JOIN atau RIGHT OUTER JOIN dengan ORACLE JOIN (+)

  5. Dapatkan Waktu Lokal Saat Ini dari Setiap Negara di PL/SQL