微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Sql组行具有相同的值,并将该值放入标头?

我想用sql对行进行分组,我的结果集如下

名称大小日期
DATA1 123 12/03/2009
数据1 124 15/09/2009
DATA2 333 02/09/2010
DATA2 323 02/11/2010
数据2 673 2014年2月9日
DATA2 444 05/01/2010

我想像这样分组结果集:

数据1
123 12/03/2009
124 15/09/2009
DATA2
333 02/09/2010
323 02/11/2010
673 2014年2月9日
444 05/01/2010

是否可以使用纯sql执行此操作?

干杯.

解决方法

GROUP BY WITH ROLLUP(你真的没有分组 – 所以你会每列都是GROUP BY)

http://dev.mysql.com/doc/refman/5.0/en/group-by-modifiers.html

http://chiragrdarji.wordpress.com/2008/09/09/group-by-cube-rollup-and-sql-server-2005/

http://databases.about.com/od/sql/l/aacuberollup.htm

http://www.adp-gmbh.ch/ora/sql/group_by/group_by_rollup.html

http://msdn.microsoft.com/en-us/library/bb522495.aspx

基于列文的代码

DECLARE @Table TABLE (
     name varchar(32),Size integer,Date datetime
    )

INSERT  INTO @Table
VALUES  ('data1',123,GETDATE())
INSERT  INTO @Table
VALUES  ('data1',124,GETDATE())
INSERT  INTO @Table
VALUES  ('data2',333,323,673,444,GETDATE())

SELECT  *
FROM    (
         SELECT *
         FROM   @Table
         GROUP BY NAME,size,date
                WITH ROLLUP
        ) AS X
WHERE   NAME IS NOT NULL
        AND (
             (
              Size IS NOT NULL
              AND Date IS NOT NULL
             )
             OR (
                 Size IS NULL
                 AND date IS NULL
                )
            )
ORDER BY NAME,date

原文地址:https://www.jb51.cc/mssql/83321.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐