sql >> Databáze >  >> RDS >> Sqlserver

Jak pivotovat v SQL

Přečetli jste si dokumentaci k PIVOT v 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;

Výše uvedené jsem netestoval, ale jen jsem to založil na doc. To vám může pomoci.

Zdá se, že neexistuje způsob, jak dynamicky generovat sloupce. Musíte je napevno zakódovat.



  1. Funkce DECODE() na serveru SQL Server

  2. MySQL:Načítání ID, kde přesně 2 řádky sdílejí stejné ID, ale mají různá ID uživatele

  3. Looping Over Result Sets v MySQL

  4. Nesprávné řazení PostgreSQL