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

Sådan opretter du en pivot-forespørgsel i sql-server uden aggregeret funktion

SELECT * FROM ( SELECT [Period], [Account], [Value] FROM TableName ) AS source PIVOT ( MAX([Value]) FOR [Period] IN ([2000], [2001], [2002]) ) as pvt

En anden måde,

SELECT ACCOUNT,
      MAX(CASE WHEN Period = '2000' THEN Value ELSE NULL END) [2000],
      MAX(CASE WHEN Period = '2001' THEN Value ELSE NULL END) [2001],
      MAX(CASE WHEN Period = '2002' THEN Value ELSE NULL END) [2002]
FROM tableName
GROUP BY Account
 
  • SQLFiddle Demo (begge forespørgsler )


  1. Skift type af en kolonne med tal fra varchar til int

  2. Indsættelse af nationale tegn i en orakel NCHAR eller NVARCHAR kolonne virker ikke

  3. Sådan viser du alle tabeller i Oracle

  4. SQL-forespørgsel til at vælge datoer mellem to datoer