sql >> Database teknologi >  >> RDS >> Sqlserver

Pivot tilfælde hvornår?

Skal du bruge PIVOT ?, fordi en simpel måde til dette ville være at bruge CASE udtryk:

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

Her er resultatet:

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

Og her er en sqlfiddle med en demo, som du kan prøve.



  1. SQL, hvordan sammenkædes resultater?

  2. Jeg får en fejl kunne ikke skrive blok .... af midlertidig fil ingen plads tilbage på enheden ... ved hjælp af postgresql

  3. Oracle datoforskel for at få antal år

  4. Hvordan kan jeg bruge Entity Framework på en objektgraf forbi en dybde på 2 med MySQL Connector / NET?