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

SQL Server PIVOT mungkin?

Karena Anda menggunakan SQL Server 2005, berikut adalah kodenya:

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 )

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:

  • Data putar di T-SQL
  • Bagaimana cara membuat ringkasan dengan bergabung ke satu tabel dengan 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. Batasan unik pada banyak kolom

  2. Jalankan perintah Sisipkan dan kembalikan Id yang dimasukkan di Sql

  3. TODATETIMEOFFSET() Contoh di SQL Server

  4. Bagaimana cara mendapatkan penanganan kebuntuan Server Sql yang efisien di C # dengan ADO?

  5. Alias ​​referensi (dihitung dalam SELECT) dalam klausa WHERE