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

SQL Server PIVOT có lẽ?

Vì bạn đang sử dụng SQL Server 2005, đây là mã:

DECLARE @cols VARCHAR(1000)
DECLARE @sqlquery VARCHAR(2000)

SELECT  @cols = STUFF(( SELECT distinct  ',' + QuoteName([Name1])
                        FROM myTable FOR XML PATH('') ), 1, 1, '') 


SET @sqlquery = 'SELECT * FROM
      (SELECT Name2, Name1, Value
       FROM myTable ) base
       PIVOT (Sum(Value) FOR [Name1]
       IN (' + @cols + ')) AS finalpivot'

EXECUTE ( @sqlquery )

Điều này sẽ hoạt động cho dù bạn có bao nhiêu trạng thái khác nhau. Nó kết hợp động một truy vấn với PIVOT . Cách duy nhất bạn có thể thực hiện PIVOT với các cột động là tập hợp động truy vấn, có thể được thực hiện trong SQL Server.

Các ví dụ khác:

  • Tổng hợp dữ liệu trong T-SQL
  • Làm cách nào để tạo một bản tóm tắt bằng cách tham gia vào một bảng duy nhất với SQL Server?
  • https://stackoverflow.com/q/8248059/570191


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. So sánh chuỗi phân biệt chữ hoa chữ thường trong SQL

  2. Cách khôi phục cơ sở dữ liệu SQL Server trên máy Mac bằng SQL Operations Studio

  3. Trung bình của sự không nhất quán float

  4. SQL Server CHỌN vào bảng hiện có

  5. Cách tách cửa sổ truy vấn trong SQL Server Management Studio (SSMS) - SQL Server / TSQL Hướng dẫn Phần 13