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

Tiga kolom SQL PIVOT

Coba sesuatu seperti ini:

DECLARE @myTable AS TABLE([ID] INT, [Field] VARCHAR(20), [Value] VARCHAR(20))
INSERT INTO @myTable VALUES ('1', 'year', '2011')
INSERT INTO @myTable VALUES ('1', 'month', 'August')
INSERT INTO @myTable VALUES ('2', 'year', '2009')
INSERT INTO @myTable VALUES ('1', 'day', '21')
INSERT INTO @myTable VALUES ('2', 'day', '31')
INSERT INTO @myTable VALUES ('2', 'month', 'July')
INSERT INTO @myTable VALUES ('3', 'year', '2010')
INSERT INTO @myTable VALUES ('3', 'month', 'January')
INSERT INTO @myTable VALUES ('3', 'day', NULL)

SELECT [ID], [year], [month], [day]
FROM
(
      SELECT [ID], [Field], [Value] FROM @myTable
) t
PIVOT
(
    MIN([Value]) FOR [Field] IN ([year], [month], [day]) 
) AS pvt
ORDER BY pvt.[year] DESC

Yang akan menghasilkan hasil:

ID  year    month   day
1   2011    August  21
3   2010    January NULL
2   2009    July    31


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hapus SKEMABINDING dari Tampilan di SQL Server

  2. SSIS - Melakukan Pencarian di Tabel lain untuk mendapatkan Kolom Terkait

  3. Bagaimana cara memantau perubahan tabel SQL Server dengan menggunakan c#?

  4. Memodifikasi Pekerjaan Agen SQL Server (T-SQL)

  5. Kapan saya bisa meng-host IIS dan SQL Server di mesin yang sama?