[英]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.