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

Oracle SQL - Lấy giá trị từ nhiều hàng

Bạn có thể xoay vòng dữ liệu như thế này trong bất kỳ phiên bản nào của Oracle.

SELECT id,
       MAX( CASE WHEN key = 'name' THEN value ELSE null END ) name,
       MAX( CASE WHEN key = 'height' THEN value ELSE null END ) height,
       MAX( CASE WHEN key = 'awesomeness' THEN value ELSE null END ) awesomeness
  FROM facts
 WHERE id IN (1,2,3)
 GROUP BY id

Nếu bạn đang sử dụng 11g, bạn cũng có thể sử dụng PVOT nhà điều hành.

Tuy nhiên, nếu đây là đại diện cho mô hình dữ liệu của bạn, thì loại mô hình dữ liệu thuộc tính thực thể đó thường sẽ khá kém hiệu quả. Nói chung, bạn sẽ được phục vụ tốt hơn nhiều với một bảng có các cột cho name , height , awesomeness , v.v.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQLException:Vi phạm giao thức. Vấn đề về trình điều khiển JDBC của Oracle

  2. Hàm chứa () trong PL-SQL hoạt động như thế nào?

  3. Sử dụng tnsnames.ora trong Oracle SQL Developer

  4. Chuyển đổi một chuỗi ngày thành datetime trong Oracle

  5. Hibernate, id, oracle, chuỗi