DB2行列转置之行转列

构造表和数据
CREATE TABLE Sales(Year INTEGER,Quarter INTEGER,Results INTEGER);
insert into sales values(2005,4,27);
insert into sales values(2005,3,12);
insert into sales values(2005,2,40);
insert into sales values(2005,1,18);
insert into sales values(2004,4,10);
insert into sales values(2004,3,15);
insert into sales values(2004,2,30);
insert into sales values(2004,1,20);
select * from sales order by year,quarter

 YEAR QUARTER RESULTS
 ---- ------- -------
 2004       1      20
 2004       2      30
 2004       3      15
 2004       4      10
 2005       1      18
 2005       2      40
 2005       3      12
 2005       4      27

如果想转换成下面的样子
 YEAR Q1 Q2 Q3 Q4
 ---- -- -- -- --
 2004 20 30 15 10
 2005 18 40 12 27

转换SQL
SELECT Year
    ,MAX(CASE
            WHEN Quarter = 1
                THEN Results
            END) AS Q1
    ,MAX(CASE
            WHEN Quarter = 2
                THEN Results
            END) AS Q2
    ,MAX(CASE
            WHEN Quarter = 3
                THEN Results
            END) AS Q3
    ,MAX(CASE
            WHEN Quarter = 4
                THEN Results
            END) AS Q4
FROM Sales
GROUP BY YEAR
新闻名称:DB2行列转置之行转列
网页网址:http://bzwzjz.com/article/jhcjeg.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 网站设计 重庆网站建设 成都网站设计 企业网站制作 成都网站建设公司 网站建设改版 重庆网站建设 成都网站设计 成都网站制作 成都h5网站建设 移动网站建设 网站制作 成都网站建设 企业网站设计 教育网站设计方案 成都网站建设公司 重庆网站建设 成都营销网站制作 广安网站设计 外贸网站建设 成都网站建设公司 成都网站设计公司