sql >> Database >  >> RDS >> Sqlserver

Pivot case wanneer?

Moet u PIVOT . gebruiken ?, omdat een eenvoudige manier hiervoor zou zijn om CASE . te gebruiken uitdrukkingen:

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

Hier is het resultaat:

╔══════════════════════════════════════╦══════════╦═══════════╦════════════╗
║                  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 ║
╚══════════════════════════════════════╩══════════╩═══════════╩════════════╝

En hier is een sqlfiddle met een demo die u kunt proberen.



  1. Gegevens kopiëren van de ene database/tabel naar een andere database/tabel

  2. PHP/mysql:Gebruikers rangschikken op klikken

  3. Enterprise Library ODP.NET-aanroep retourneert ORA-06502:PL/SQL:numerieke of waardefout

  4. Splits woorden met een hoofdletter in sql