Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Hàng đến cột trong 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

nếu số lượng nhóma được cố định, truy vấn trên sẽ hoạt động.

Chỉnh sửa:Sử dụng pivot

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

Cảm ơn vì giải pháp. Tôi gần như có. Đây là những gì tôi nhận được sau khi chạy truy vấn này. Trên thực tế, có 53 NHÓM khác nhau, vì vậy nó đang thêm 53 cột nhưng số nhóm tối đa được chỉ định cho một người dùng là 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

Làm cách nào để nhận được kết quả như thế này ...

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

Làm cách nào để nhận được kết quả như tôi đã đề cập trong câu hỏi? Cảm ơn,



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. THỦ TỤC ORACLe - AUTHID chỉ được phép trong cấp giản đồ

  2. Phát triển cho Windows Server 2003 64 bit trên Windows XP 32 bit

  3. Sự khác biệt giữa 'YYYY' và 'RRRR' trong Oracle SQL là gì

  4. Hạn chế của NetSuite ODBC

  5. Xác định và thiết lập phiên bản R12.2