2016-07-20 6 views
2

Ich habe eine Abfrage, die 1 Zeile zurückgibt:Drehen Spalten in Zeilen mit SQL Server 2012+ UND T-SQL

SELECT fy.Id , 
     fy.FirstStart , 
     fy.SecondStart , 
     fy.ThirdStart , 
     fy.FourthStart 

FROM dbo.FiscalYears fy 
WHERE [Year] = 2017 

Dies ist das Ergebnis:

| Id | FirstStart | SecondStart | ThirdStart | FourthStart | 
|----|------------|-------------|------------|-------------| 
| 5 | 2016-04-03 | 2016-07-03 | 2016-10-02 | 2017-01-01 | 

Ich möchte drehen dies in:

| Name  | Date  | 
|-------------|------------| 
| FirstStart | 2016-04-03 | 
| SecondStart | 2016-07-03 | 
| ThirdStart | 2016-10-02 | 
| FourthStart | 2017-01-01 | 

ich habe in anderen Fragen ähnlich zu ausgesehen, die eine PIVOT in einer Unterabfrage verwenden, aber ich bin nicht in der Lage, es herauszufinden. Jede Hilfe wird geschätzt.

Antwort

2

Verwendung UNPIVOT:

SELECT Id, Name, Date 
FROM 
(
    SELECT Id, FirstStart, SecondStart, ThirdStart, FourthStart 
    FROM dbo.FiscalYears 
) fy 
UNPIVOT 
(Date FOR Name IN (FirstStart, SecondStart, ThirdStart, FourthStart)) AS t 
+1

es genagelt. Vielen Dank. –

Verwandte Themen