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

Pivot Beberapa Kolom di T-SQL

Tulis ulang menggunakan MAX(CASE...) dan GROUP BY:

select 
  field1
, [1] = max(case when RowID = 1 then field2 end)
, [2] = max(case when RowID = 2 then field2 end)
, [3] = max(case when RowID = 3 then field2 end)
, [4] = max(case when RowID = 4 then field2 end)
from (
  select 
    field1
  , field2
  , RowID = row_number() over (partition by field1 order by field2)
  from tblname
  ) SourceTable
group by 
  field1

Dari sana Anda dapat menambahkan di bidang3, bidang4, dll.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menggunakan kembali SqlCommand?

  2. Haruskah saya mengindeks bidang bit di SQL Server?

  3. SQL Server (TSQL) - Apakah mungkin untuk membuat pernyataan EXEC secara paralel?

  4. Tambahkan batasan unik ke kombinasi dua kolom

  5. Microsoft SQL Server 2005/2008:XML vs tipe data teks/varchar