2016-04-29 96 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)