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

Sådan pivoterer du i SQL

Har du læst dokumentationen på PIVOT i Microsoft SQL Server 2005?

SELECT CustId, 
  [1] AS Admin,
  [2] AS Manager,
  [3] AS Support,
  [4] AS Assistant
FROM (SELECT c.CustId, r.RoleId
FROM CustomerRoles c JOIN Roles r USING (RoleId)) AS s
PIVOT (
 COUNT(CustId)
 FOR RoleId IN ([1], [2], [3], [4])
) AS pvt
ORDER BY CustId;

Jeg har ikke testet ovenstående, men bare baseret det på dok. Dette kan få dig i gang.

Der ser ikke ud til at være en måde at generere kolonnerne dynamisk på. Du skal hardkode dem.



  1. Sådan fungerer Mod() i PostgreSQL

  2. hvordan man ringer til webservice fra t-sql

  3. Top almindelige MySQL-forespørgsler

  4. Forespørgsel efter en tilpasset postgresql-parameter med SELECT-sætning