Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server 2005:在';分组依据';结果_Sql_Database_Sql Server 2005 - Fatal编程技术网

SQL Server 2005:在';分组依据';结果

SQL Server 2005:在';分组依据';结果,sql,database,sql-server-2005,Sql,Database,Sql Server 2005,我有一组由一组结果运行的报告,现在运行时,它看起来像: Column_1 1 2 3 代码: 但我希望结果集如下所示: Column_1 1 2 3 这可能吗?试试这个 选择 第1列 ,其他资料, 字符(13)+字符(10) 从…起 几张桌子 分组 第1列答案是肯定的,这可能是一个肮脏的黑客行为。但是我认为,这在SQL之外处理得更好。SQL用于数据,应用层用于格式化。(根据你在哪里处理结果,问一个新问题可能是有益的) 为了做到这一点,您需要使用空数据复制结果集(这意味着您需要确保所有

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

Column_1
1
2
3
代码:

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

Column_1
1  

2

3
这可能吗?

试试这个

选择
第1列
,其他资料,
字符(13)+字符(10)
从…起
几张桌子
分组

第1列

答案是肯定的,这可能是一个肮脏的黑客行为。但是我认为,这在SQL之外处理得更好。SQL用于数据,应用层用于格式化。(根据你在哪里处理结果,问一个新问题可能是有益的)

为了做到这一点,您需要使用空数据复制结果集(这意味着您需要确保所有列都是varchar)

您需要有一种排序结果集的方法,以确保空白行是交替的(下面是SORT1和SORT2)


<>如果您的查询特别昂贵,您可能需要考虑使用临时表,而不是选择两次,第二次不使用任何数据。

不幸的是,这意味着我必须对任何不受函数影响的列进行分组,并且仍然显示为示例1。感谢您,这几乎可以正常工作,但OtherInfo列不被接受,因为它不在聚合函数中。您需要将其包括在分组中或者将其作为一个聚合列包含,而不查看您的数据或了解您的需求,我不确定是哪一个。
Column_1
1  

2

3
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;