簡體   English   中英

SQL Server 2005:在“分組依據”結果中留出空白

[英]SQL Server 2005 : putting a gap in 'Group By' results

我有一組由一組結果運行的報告,現在運行時看起來像:

Column_1
1
2
3

碼:

Select Column_1, Other_Info  
From Some_Table  
Group By Column_1

但我希望結果集如下所示:

Column_1
1  

2

3

這是可能嗎?

答案是可以的。 但我強烈建議在SQL之外更好地處理此問題。 SQL用於數據,應用程序層用於格式化。 (根據您在哪里處理結果,提出一個新問題可能會有所幫助)。

為此,您需要復制結果集,但要使用空數據(這意味着您需要確保所有列都為varchar)。

然后,您需要一種對結果集進行排序的方法,以確保空白行是交替的(下面的Sort1和Sort2)

SELECT  Column1, OtherInfo
FROM    (   SELECT  Column_1 = CAST(Column_1 AS NVARCHAR), 
                    OtherInfo = CAST(Other_Info AS NVARCHAR), 
                    Sort1 = ROW_NUMBER() OVER(ORDER BY Column_1), 
                    Sort2 = 1
            FROM    Some_Table  
            GROUP BY Column_1, OtherInfo
            UNION ALL
            SELECT  Column_1 = N'',
                    OtherInfo = N'',
                    Sort1 = ROW_NUMBER() OVER(ORDER BY Column_1),
                    Sort2 = 2
            FROM    Some_Table  
            GROUP BY Column_1, OtherInfo
        ) d
ORDER BY Sort1, Sort2;

如果查詢的開銷特別大,則可能需要考慮使用臨時表,而不是選擇兩次並且第二次不使用任何數據。

嘗試這個

Select Column_1 ,Other_Info, CHAR(13) + CHAR(10) From Some_Table Group By Column_1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM