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

Baris ke Kolom di ORACLE

select name,id, 
 max(case when groupa = 'A' then groupa end) as group1,
  max(case when groupa = 'B' then groupa end) as group2,
  max( case when groupa = 'C' then groupa end) as group3
   from tablename
   group by name, id

jika jumlah groupa tetap, kueri di atas akan berfungsi.

Sunting:Menggunakan pivot

 select * from
  (select name, id , groupa from tablename)
  pivot xml (
  max(groupa) for groupa in
   (select distinct groupa from tablename)
   )

Terima kasih atas solusinya. Saya hampir sampai. Inilah yang saya dapatkan setelah menjalankan kueri ini. Sebenarnya ada 53 GROUPS yang berbeda sehingga menambah 53 kolom tetapi jumlah maksimum grup yang ditetapkan untuk pengguna adalah 5.

NAME      ID      A      B      C     D      E      F      G      H
James     20      A      null   null  null   null   null   null   H
Michael   30      A      B      null  null   E      null   null   null

Bagaimana cara mendapatkan hasil seperti ini...

NAME      ID      GROUP_1  GROUP_2  GROUP_3
James     20      A        H
Michael   30      A        B        E

Bagaimana cara mendapatkan hasil seperti yang saya sebutkan dalam pertanyaan? Terima kasih,



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. bagaimana mengganti huruf beraksen di kolom varchar2 di oracle

  2. Evaluasi hubungan pendek CASE dan COALESCE bekerja dengan urutan dalam PL/SQL tetapi tidak dalam SQL

  3. Menjalankan prosedur tersimpan Oracle dalam EntityFramework

  4. NEXT_DAY() Fungsi di Oracle

  5. Kesalahan sintaks Oracle