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

bảng truy vấn pivot sql oracle

Của bạn đây:

with w(time, ID, Page) as
(
  select '9:30', 1, 'name1' from dual
  union all
  select '9:30', 1, 'name2' from dual
  union all
  select '9:30', 1, 'name3' from dual
  union all
  select '9:30', 2, 'name4' from dual
  union all
  select '9:30', 2, 'name5' from dual
  union all
  select '7:30', 3, 'name1' from dual
)
select *
from
(
  select w.time, w.id, w.page, row_number() over (partition by w.time, w.id order by w.page) rnk
  from w
)
pivot (max(page) for rnk in (1 as page1, 2 as page2, 3 as page3))
order by 1, 2
;

Điều này mang lại:

TIME    ID    PAGE1    PAGE2    PAGE3
7:30    3     name1        
9:30    1     name1    name2    name3
9:30    2     name4    name5    



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server 2016 trên Linux

  2. Số liệu thống kê động thích ứng giết chết hiệu suất trong 12.1.0.2 RAC

  3. java.sql.SQLRecoverableException:Bộ điều hợp mạng không thể thiết lập kết nối

  4. Oracle chèn ký tự vào một chuỗi

  5. Oracle UTL_FILE đọc các dòng tệp CSV