我有一组报告由一组结果运行该组,现在运行时看起来像:
Column_1
1
2
3
代码:
Select Column_1, Other_Info
From Some_Table
Group By Column_1
但我希望结果集看起来像:
Column_1
1
2
3
这是可能吗?
我有一组报告由一组结果运行该组,现在运行时看起来像:
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