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

Oracle SQL - Chuyển đổi giá trị cột của N hàng thành N cột trong 1 hàng

Giả sử rằng bạn không quan tâm thứ tự các mô tả được trả về (tức là Jeremy Smith có thể có một Description1 một cách chính xác hoặc "Nhầm lẫn" và Description2 của "Tall"), bạn chỉ cần xoay vào số hàng. Nếu bạn quan tâm đến thứ tự mà các mô tả được trả lại, bạn có thể thêm ORDER BY mệnh đề cho hàm cửa sổ trong ROW_NUMBER chức năng phân tích

SELECT firstName, 
       lastName,
       MAX( CASE WHEN rn = 1 THEN description ELSE NULL END ) description1,
       MAX( CASE WHEN rn = 2 THEN description ELSE NULL END ) description2,
       MAX( CASE WHEN rn = 3 THEN description ELSE NULL END ) description3
  FROM (SELECT firstName,
               lastName,
               description,
               row_number() over (partition by lastName, firstName) rn
          FROM descriptions
               JOIN people USING (firstName, lastName)
         WHERE age >= 25)
   GROUP BY firstname, lastname

Ngoài ra, tôi hy vọng rằng bạn đang thực sự lưu trữ ngày sinh và tính toán tuổi của người đó thay vì lưu trữ tuổi và giả định rằng mọi người đang cập nhật tuổi của họ hàng năm.



  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âu lệnh chạy in sqlplus

  2. Lỗi khi chuyển đổi XML từ cột CLOB sang cột XMLType

  3. Đếm các cột không rỗng theo một cách khá kỳ lạ

  4. Liệt kê tên cột cho các chế độ xem của người dùng trong oracle

  5. Xử lý null khi sử dụng Oracle XMLType