2011-10-24 35 views
3

使用SQL Server 2000逐行顯示的行明智

table1的

ID Value 

101 100 
102 200 
103 500 

我只有3排在表格中。我想在行方向視做

預期輸出

101 102 103 
100 200 500 

如何使上述條件的選擇查詢。

需要查詢幫助

+0

輸出結果是一個表?應該如何顯示標題「ID」和「值」? – sll

+0

參考中提及的ID和值..... – Gopal

+0

結果中的「101」,「102」,「103」是什麼?他們是列名還是他們在一行中的值(特別是第一行,可能)? –

回答

1

如果您defenitely知道哪些值你在ID列,您可以使用這樣的查詢:

SELECT 
    MAX(id_101) AS id_101, 
    MAX(id_102) AS id_102, 
    MAX(id_103) AS id_103 
FROM (
SELECT 
    1 AS aux, 
    CASE WHEN ID = 101 THEN val ELSE null END AS id_101, 
    CASE WHEN ID = 102 THEN val ELSE null END AS id_102, 
    CASE WHEN ID = 103 THEN val ELSE null END AS id_103 
FROM table1 
) AS t(aux, id_101, id_102, id_103) 
GROUP BY t.aux; 
1

假設101,102,103是列名,你可以旋轉表usign PIVOT:

SELECT * 
FROM 
(
SELECT id, value 
FROM @data1 
) p 
PIVOT (SUM(value) FOR [id] IN ([101], [102], [103])) AS pvt 

enter image description here


準備數據:

DECLARE @data1 TABLE(id int, value INT) 
INSERT INTO @data1 VALUES(101, 100) 
INSERT INTO @data1 VALUES(102, 200) 
INSERT INTO @data1 VALUES(103, 500) 
+0

Pivot是sql server 2008,OP是使用2000 –