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

Transpose beberapa kolom ke baris menggunakan pivot dengan SQL

Ada beberapa hal yang salah dengan kueri Anda.

Pertama, Anda kehilangan fungsi agregat pada PIVOT Anda. Anda memerlukan agregat di sekitar propertyvalue .

Kedua, Anda perlu mengapit $row1 , dll dengan tanda kurung siku bukan tanda kutip tunggal.

Ketiga, saya akan menggunakan alias yang berbeda untuk as pivot

Hasilnya kodenya akan menjadi:

select * 
from 
(
  select name, propertyvalue, displayname
  from indexrows
) a
pivot
(
  max(propertyvalue)
  for [displayname] in ([$row1], [$row2], [$row3])
) piv;

Lihat SQL Fiddle dengan Demo



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mengelompokkan pada rentang berkelanjutan?

  2. Apa itu Azure Data Studio?

  3. Apa itu @@SERVICENAME di SQL Server?

  4. Bagaimana mengubah tipe data kolom dalam database SQL tanpa kehilangan data

  5. Hindari kolom NULL menggunakan DEFAULT Empty String