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

Chuyển đổi đầu ra truy vấn

Đây là một cách để thực hiện việc này chỉ với các truy vấn con và tổng hợp:

select name,
       sum(case when fy = 2014 then x end) as "2014",
       sum(case when fy = 2015 then x end) as "2015",
       sum(case when fy = 2016 then x end) as "2016"
from (select fy,
             (case when n.n = 1 then 'x1'
                   when n.n = 2 then 'x2'
                   when n.n = 3 then 'x3'
                   when n.n = 4 then 'x4'
              end) as name,
             (case when n.n = 1 then x1
                   when n.n = 2 then x2
                   when n.n = 3 then x3
                   when n.n = 4 then x4
              end) as x
      from temp_table cross join
            (select 1 as n from dual union all
             select 2 from dual union all
             select 3 from dual union all
             select 4 from dual
            ) n
     ) t
group by name;

Bạn cũng có thể sử dụng pivot , nhưng đó là một bổ sung gần đây cho Oracle SQL, vì vậy tôi có xu hướng sử dụng phương pháp này.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Khả năng hiển thị khác biệt trong tham gia truy vấn con và vị trí

  2. Gọi thủ tục Oracle PL / SQL với kiểu trả về Đối tượng tùy chỉnh từ trình điều khiển JDBCthin 0jdbc6

  3. Lỗi khi lưu và nhận blob từ cơ sở dữ liệu SQL oracle

  4. Entity Framework và Oracle

  5. Cách tạo UUID phiên bản 4 (ngẫu nhiên) trên Oracle?