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

cara mendapatkan satu data kolom dari satu tabel ke tabel lain sebagai kolom yang berbeda di PL/SQL

Jika Anda menjamin bahwa data di tabel sumber Anda akan berada dalam urutan khusus ini, Anda dapat menulis kueri serupa untuk mencapai hasil yang diinginkan:

-- sample of data from your question
SQL> with t1(col) as(
  2    select 'Scott'  from dual union all
  3    select '100'    from dual union all
  4    select '10'     from dual union all
  5    select 'Miller' from dual union all
  6    select '200'    from dual union all
  7    select '20'     from dual union all
  8    select 'Mike'   from dual union all
  9    select '300'    from dual union all
 10    select '30'     from dual union all
 11    select 'Allen'  from dual union all
 12    select '400'    from dual union all
 13    select '40'     from dual
 14  ) -- the query
 15  select max(decode(mod(rownum - 1, 3), 0, col)) as name
 16       , max(decode(mod(rownum - 1, 3), 1, col)) as sal
 17       , max(decode(mod(rownum - 1, 3), 2, col)) as depno
 18    from t1
 19    group by trunc((rownum -1)/ 3)
 20  /

NAME   SAL    DEPNO
------ ------ ------
Miller 200    20
Mike   300    30
Allen  400    40
Scott  100    10

Tambahan

Anda tidak memerlukan kursor untuk ini (kecuali jika ada persyaratan khusus yang menuntut penggunaan kursor). Untuk mengisi tabel lain dengan data Anda cukup menggunakan INSERT INTO ... SELECT :

insert into temp_process(name, sal, depno)
   select max(decode(mod(rownum - 1, 3), 0, col)) 
        , max(decode(mod(rownum - 1, 3), 1, col)) 
        , max(decode(mod(rownum - 1, 3), 2, col))
     from table_a
     group by trunc((rownum -1)/ 3)  



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Memisahkan string yang dipisahkan koma di Oracle

  2. Pelajari Cara Menjalankan Prosedur di Toad Untuk Oracle

  3. Gulir Jenis JDBC Tidak Peka dan Sensitif

  4. C#/Oracle:Tentukan Encoding/Set Karakter Kueri?

  5. ORA-00933:Perintah SQL tidak berakhir dengan benar