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

PIVOT SQL ba cột

Hãy thử một cái gì đó như sau:

DECLARE @myTable AS TABLE([ID] INT, [Field] VARCHAR(20), [Value] VARCHAR(20))
INSERT INTO @myTable VALUES ('1', 'year', '2011')
INSERT INTO @myTable VALUES ('1', 'month', 'August')
INSERT INTO @myTable VALUES ('2', 'year', '2009')
INSERT INTO @myTable VALUES ('1', 'day', '21')
INSERT INTO @myTable VALUES ('2', 'day', '31')
INSERT INTO @myTable VALUES ('2', 'month', 'July')
INSERT INTO @myTable VALUES ('3', 'year', '2010')
INSERT INTO @myTable VALUES ('3', 'month', 'January')
INSERT INTO @myTable VALUES ('3', 'day', NULL)

SELECT [ID], [year], [month], [day]
FROM
(
      SELECT [ID], [Field], [Value] FROM @myTable
) t
PIVOT
(
    MIN([Value]) FOR [Field] IN ([year], [month], [day]) 
) AS pvt
ORDER BY pvt.[year] DESC

Điều này sẽ mang lại kết quả của:

ID  year    month   day
1   2011    August  21
3   2010    January NULL
2   2009    July    31


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Khóa hàng - sử dụng chúng theo cách thủ công

  2. Cách tạo câu lệnh chèn từ tệp văn bản cho bảng SQL Server trong SQL Server - Hướng dẫn sử dụng SQL Server / TSQL Phần 106

  3. SQL Server - Truy vấn ngắn mạch?

  4. OPENROWSET BULK quyền đối với thư mục được chia sẻ

  5. Thêm INDEX vào CTE