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

Kolom Pivot Dinamis di SQL Server

Sesuatu seperti ini:

DECLARE @cols AS NVARCHAR(MAX);
DECLARE @query AS NVARCHAR(MAX);

select @cols = STUFF((SELECT distinct ',' +
                        QUOTENAME(Name)
                      FROM property
                      FOR XML PATH(''), TYPE
                     ).value('.', 'NVARCHAR(MAX)') 
                        , 1, 1, '');

SELECT @query =

'SELECT *
FROM
(
  SELECT
    o.object_id,
    p.Name,
    o.value
  FROM propertyObjects AS o
  INNER JOIN property AS p ON o.Property_Id = p.Id
) AS t
PIVOT 
(
  MAX(value) 
  FOR Name IN( ' + @cols + ' )' +
' ) AS p ; ';

 execute(@query);

Demo Fiddle SQL.

Ini akan memberi Anda sesuatu seperti ini:

| OBJECT_ID | PROPERTY1 | PROPERTY2 | PROPERTY3 | PROPERTY4 |
-------------------------------------------------------------
|         1 |        ee |        fd |       fdf |      ewre |
|         2 |       dsd |       sss |      dfew |       dff |



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menghapus Profil Email Database (SSMS)

  2. Kode Kerangka Entitas Pertama dengan Sinonim SQL Server

  3. Pernyataan UPDATE bertentangan dengan batasan REFERENCE - Tutorial SQL Server / TSQL Bagian 76

  4. SQL Server Menjalankan Pemantauan Kueri

  5. Gunakan sys.trigger_event_types untuk Mencantumkan Jenis Peristiwa Pemicu di SQL Server