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

PIVOT Oracle - chuyển đổi dữ liệu nhiều hàng thành một hàng với nhiều cột, không có dữ liệu tổng hợp

Bạn không làm bất cứ điều gì với mô tả, mô tả này cũng thay đổi theo thẻ. Nó không được tổng hợp nên nó nằm trong 'nhóm theo' ngầm định, vì vậy bạn sẽ có các hàng riêng biệt trong tập kết quả.

Bạn cũng có thể nắm bắt điều đó bằng một tổng hợp (giả) khác:

select * from (
  select * from TEST2 where tag in ('LN', 'SN')
)
PIVOT
(
  max(value) as value, max(description) as description
  for tag in ('LN' as ln, 'SN' as sn)
)
order by category, subcat, item, "Date";

Date      SUBCAT CATEGOR IT LN_VALUE          LN_DESCRIPTION  SN_VALUE          SN_DESCRIPTION
--------- ------ ------- -- ----------------- --------------- ----------------- ---------------
24-OCT-13 290223 1219576 25 1105618           Lot Number      3x12mm            Serial Number  
24-OCT-13 290223 1219576 28 1303757           Lot Number                                       
18-JUN-15 354506 1219576 4  1403114           Lot Number                                       
18-JUN-15 354506 1219576 9  7777777777        Lot Number      9.999999999999E12 Serial Number  

Hoặc có nhiều khả năng loại trừ nó khỏi tập kết quả trung gian nếu bạn không muốn, bằng cách chỉ định các cột bạn muốn thay vì sử dụng * :

select * from (
  select category, subcat, item, "Date", tag, value
  from TEST2 where tag in ('LN', 'SN')
)
PIVOT
(
  max(value) for tag in ('LN' as ln, 'SN' as sn)
)
order by category, subcat, item, "Date";

CATEGOR SUBCAT IT Date      LN                SN              
------- ------ -- --------- ----------------- -----------------
1219576 290223 25 24-OCT-13 1105618           3x12mm           
1219576 290223 28 24-OCT-13 1303757                            
1219576 354506 4  18-JUN-15 1403114                            
1219576 354506 9  18-JUN-15 7777777777        9.999999999999E12


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Có thể quản lý cơ sở dữ liệu oracle với flyway không?

  2. Viết hoa tên người trong lập trình

  3. Truy vấn tìm bản quét toàn bảng trong oracle

  4. danh sách được phân tách bằng dấu phẩy là kết quả của câu lệnh select trong Oracle

  5. Java kết nối với nhiều cơ sở dữ liệu