0

我有一组报告由一组结果运行该组,现在运行时看起来像:

Column_1
1
2
3

代码:

Select Column_1, Other_Info  
From Some_Table  
Group By Column_1

但我希望结果集看起来像:

Column_1
1  

2

3

这是可能吗?

4

2 回答 2

1

答案是肯定的,用肮脏的黑客攻击是可能的。但我强烈建议这在 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;

如果您的查询成本特别高,您可能需要考虑使用临时表,而不是选择两次并且第二次不使用任何数据。

于 2013-03-01T13:11:16.780 回答
0

试试这个

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

于 2013-03-01T11:11:31.913 回答