2016-04-29 68 views
2

我有一個表顯示它的「注意」和列名「註釋」與喜價值和你好 看起來像這樣在一列單獨的兩行兩列

Note 
-------- 
HI 
HELLO 

我要分開呢在SQL 輸出兩個欄會是這樣的:

Note1 Note2 
------------------ 
Hi  Hello 

我怎麼會做它在SQL查詢?

+3

如果什麼有三排? –

回答

1

這?如果超過2行,它應該工作。

WITH NotesWithId 
AS  (
     SELECT ID = ROW_NUMBER() OVER (ORDER BY (SELECT NULL)), 
       note 
     FROM Notes 
     ) 
SELECT [note1] = CASE WHEN [ID] % 2 <> 0 THEN [note] ELSE NULL END, 
     [note2] = CASE WHEN [ID] % 2 = 0 THEN [note] ELSE NULL END 
FROM NotesWithId; 
0

如何:

select max(note) as note1, min(note) as note2 
from t; 
1
DECLARE 
@SQL VARCHAR(1000), 
@COLUMN_LIST VARCHAR(200) 
SET @COLUMN_LIST=(SELECT  STUFF((SELECT ',[' + CONVERT(VARCHAR(5),NOTE) +'] ' 
                        FROM (SELECT DISTINCT NOTE FROM #C)Z 
                         FOR XML PATH('')),1,1,'')) 
SET @SQL= 
'SELECT HI AS NOTE1 ,HELLO NOTE2 FROM 
(
SELECT NOTE AS NOTE FROM #C 
)B 
PIVOT 
(
MIN(B.NOTE) FOR B.NOTE IN ('[email protected]_LIST+') 
)A' 
SELECT @SQL 
EXEC (@SQL)