Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Pivot data di T-SQL

Jika Anda menggunakan SQL Server 2005 (atau lebih tinggi), berikut adalah kodenya:

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

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


SET @sqlquery = 'SELECT * FROM
      (SELECT Person, Month, Paid
       FROM YourTable ) base
       PIVOT (Sum(Paid) FOR [Person]
       IN (' + @cols + ')) AS finalpivot'

EXECUTE ( @sqlquery )

Ini akan berfungsi tidak peduli berapa banyak status berbeda yang Anda miliki. Ini secara dinamis merakit kueri dengan PIVOT . Satu-satunya cara Anda dapat melakukan PIVOT dengan kolom dinamis adalah dengan merakit kueri secara dinamis, yang dapat dilakukan di SQL Server.

Contoh lain:

  • Mungkin SQL Server PIVOT?
  • Bagaimana cara membuat ringkasan dengan bergabung ke satu tabel dengan SQL Server?


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bisakah SQL Server Express LocalDB terhubung dari jarak jauh?

  2. UPSERT Atom di SQL Server 2005

  3. Cara Mengaktifkan Kompresi pada Tabel yang Ada di SQL Server (T-SQL)

  4. SQL Server Subquery mengembalikan lebih dari 1 nilai. Ini tidak diizinkan ketika subquery mengikuti =, !=, <, <=,>,>=

  5. Cara Menggunakan Fungsi T-SQL SQL Server SUM:5 Kasus Penggunaan