2016-07-20 1 views
2

나는 1 개 행을 반환하는 쿼리가 있습니다SQL 서버 2012+ 및 T-SQL을 사용하여 열을 행으로 켜기

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

내가 설정하고 싶습니다 :

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

FROM dbo.FiscalYears fy 
WHERE [Year] = 2017 

이것은 결과를 이 현황 :

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

나는 하위 쿼리에 PIVOT을 사용하는 이와 비슷한 다른 질문을 검토 한하지만 난 그것을 알아낼 수 아니에요. 어떤 도움을 주셔서 감사합니다.

답변

2

사용 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

을 맞았다. 고맙습니다. –