2015-07-21 85 views
0

我的SQL查詢返回幾列但只返回一行。我需要將這一行和列的名稱轉換爲兩列 - 首先是列名,第二列是行值。由於某些原因,我無法使用交叉表。SQL - 將一行轉置爲兩列

我想要執行的操作如下所示。 前:

Column1 | Column2 | Column3 | Column4 
---------+---------+---------+-------- 
Value1 | Value2 | Value3 | Value4 

而且我要得到這個:

Cols | Vals 
--------+--------- 
Column1 | Value1 
Column2 | Value2 
Column3 | Value3 
Column4 | Value4 
+2

'UNION'是你的朋友。 –

回答

0
select 'Column1' as Cols, Column1 as Vals from YourTable 
union all 
select 'Column2', Column2 from YourTable 
union all 
select 'Column3', Column3 from YourTable 
union all 
select 'Column4', Column4 from YourTable 
1

這是否你想要做什麼?

SELECT 
    'Column1' AS Cols 
    , Column1 AS Vals 
FROM Table 
UNION ALL 
SELECT 
    'Column2' AS Cols 
    , Column2 AS Vals 
FROM Table 
UNION ALL 
SELECT 
    'Column3' AS Cols 
    , Column3 AS Vals 
FROM Table 
UNION ALL 
SELECT 
    'Column4' AS Cols 
    , Column4 AS Vals 
FROM Table