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

Pivot case kapan?

Apakah Anda perlu menggunakan PIVOT ?, karena cara sederhana untuk ini adalah dengan menggunakan CASE ekspresi:

SELECT  id,
        MIN(CASE WHEN displayName = 'User SID' THEN stringValue END) [User SID],
        MIN(CASE WHEN displayName = 'User Name' THEN stringValue END) [User Name],
        MIN(CASE WHEN displayName = 'Last Login' THEN dateValue END) [Last Login]
FROM YourTable
GROUP BY id

Ini hasilnya:

╔══════════════════════════════════════╦══════════╦═══════════╦════════════╗
║                  ID                  ║ USER SID ║ USER NAME ║ LAST LOGIN ║
╠══════════════════════════════════════╬══════════╬═══════════╬════════════╣
║ EBD6F18D-3CD3-4134-8FFB-7620D3EA93DF ║ SID2     ║ User 2    ║ 2012-01-10 ║
║ 59FAA56C-4C0C-456E-BA68-AC63250D6281 ║ SID-122  ║ My User   ║ 2012-01-01 ║
╚══════════════════════════════════════╩══════════╩═══════════╩════════════╝

Dan inilah sqlfiddle dengan demo untuk Anda coba.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Folder SSIS Foreach Loop sebagai variabel

  2. Pivot dan koma nilai yang dipisahkan

  3. Pilih angka dengan lebih dari 4 tempat desimal

  4. 6 Pertanyaan Masalah yang Memperlambat Basis Data Anda

  5. Bagaimana cara menambahkan auto_increment ke kolom di SQL Server 2008