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

Chuyển đổi các hàng thành các cột dựa trên cột ID

bạn có thể sử dụng mệnh đề tổng hợp SQL Server cho việc này:

select
    p.*
from Table1
pivot(
    max([Field Selection])
    for [Field Name] in ([Rating 1], [Rating 2], [Rating 3])
) as p

hoặc bạn có thể xoay vòng theo cách thủ công:

select
    ID,
    max(case when [Field Name] = 'Rating 1' then [Field Selection] end) as [Rating 1], 
    max(case when [Field Name] = 'Rating 2' then [Field Selection] end) as [Rating 2],
    max(case when [Field Name] = 'Rating 3' then [Field Selection] end) as [Rating 3]
from Table1
group by ID

sql fiddle demo




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thêm Zeros dẫn đầu &theo sau trong SQL Server

  2. Khắc phục Msg 8117 “Kiểu dữ liệu toán hạng varchar không hợp lệ cho toán tử sum” trong SQL Server

  3. Tốt hơn là thực hiện một phép nối Equi trong mệnh đề from hoặc mệnh đề where

  4. FOR XML PATH (''):Bỏ qua các ký tự đặc biệt

  5. Vị trí thực của dữ liệu FILESTREAM