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

SQL xoay các giá trị cột

Bạn có thể sử dụng các hàm cửa sổ và tổng hợp có điều kiện:

select
    rn,
    max(case when occupation = 'Doctor' then name end) doctor,
    max(case when occupation = 'Singer' then name end) singer,
    max(case when occupation = 'Actor'  then name end) actor
from (
    select t.*, row_number() over(partition by occupation order by name) rn
    from mytable t
)
group by rn

Truy vấn con xếp hạng những người có cùng nghề nghiệp theo tên. Sau đó, bạn có thể sử dụng thông tin đó để tạo các hàng và truy cập vào tên tương ứng cho từng nghề nghiệp với tổng hợp có điều kiện.

Không có chức năng cửa sổ, nó là khác nhau. Nếu dữ liệu của bạn không quá lớn, một tùy chọn sẽ mô phỏng số hàng bằng một truy vấn con:

select
    rn,
    max(case when occupation = 'Doctor' then name end) doctor,
    max(case when occupation = 'Singer' then name end) singer,
    max(case when occupation = 'Actor'  then name end) actor
from (
    select t.*, 
        (
            select count(*) 
            from mytable t1 
            where t1.occupation = t.occupation and t1.name <= t.name
        ) rn
    from mytable t
)
group by rn



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kích thước tối đa của int (10) trong Mysql là bao nhiêu

  2. Tạo biến mảng trong MySQL

  3. Tạo trình kích hoạt trong mysql cho UUID thế hệ

  4. Ngăn không cho dữ liệu HTML được đăng vào hộp văn bản của biểu mẫu

  5. Dự án Java đã hoàn thành, hiện đang tạo tệp jar hoặc .exe (với Cơ sở dữ liệu)