2017-08-16 87 views
1

我在SQL Server中遇到問題。將行轉換爲列

我的查詢是這樣的:

select Format(new_qtrdate1,'dd-MMM') as MTBURDATE1, 
     Format(new_qtrdate2,'dd-MMM') as MTBURDATE2, 
     Format(new_qtrdate3,'dd-MMM') as MTBURDATE3, 
     new_mtbur1 as MTBUR1, 
     new_mtbur2 as MTBUR2, 
     new_mtbur3 as MTBUR3 
    from Filterednew_craform 
where 

我查詢的當前結果如下:

(MTBURDATE1) (MTBURDATE2) (MTBURDATE3) MTBUR1 MTBUR2 MTBUR3 
------------------------------------------------------------------------ 
01-May   01-Jun  01-Jul 34214 10756 9879 

我想是這樣的:

Date MTBUR 
------------ 
01-May 34214 
01-Jun 10756 
01-Jul 9879 

如何我可以這樣做嗎?

+0

什麼查詢? – dbajtr

+0

是否要更改服務器中的表,還是隻需要SQL來實現該輸出? – RealCheeseLord

+0

您是否嘗試過任何解決問題的方法?你可以在這裏找到許多類似的問題是SO尋址完全相同的問題, –

回答

3

如果你有固定的號碼試試下面:

with CTE as 
(
    SELECT....... -- Your Query 
) 

Select MTBURDATE1 AS Date, MTBUR1 AS MTBUR from CTE 
UNION ALL 
Select MTBURDATE2, MTBUR2 from CTE 
UNION ALL 
Select MTBURDATE3, MTBUR3 from CTE 
1

我認爲這是UNION ALL應該做你需要的東西:列

SELECT (MTBURDATE1) 
     , MTBUR1 
    FROM Filterednew_cra 
UNION ALL 
SELECT (MTBURDATE2) 
     , MTBUR2 
    FROM Filterednew_cra 
UNION ALL 
SELECT (MTBURDATE3) 
     , MTBUR3 
    FROM Filterednew_cra 
+0

所有的字段都來自同一個表 – Ayaz

+0

我的查詢是這樣的: - select格式(new_qtrdate1,'dd-MMM')爲MTBURDATE1,格式(new_qtrdate2,'dd-MMM')爲MTBURDATE2,格式(new_qtrdate3,'dd-MMM')爲MTBURDATE3, ,new_mtbur1爲MTBUR1,new_mtbur2爲MTBUR2,new_mtbur3爲來自Filterednew_craform的MTBUR3 其中 – Ayaz