DB2行列转置的行转列是怎样的

网友投稿 448 2023-12-13

DB2行列转置的行转列是怎样的

DB2行列转置的行转列是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

DB2行列转置的行转列是怎样的

建表,并insert 2行数据

CREATE TABLE SalesAgg(year INTEGER, q1 INTEGER, q2 INTEGER, q3 INTEGER, q4 INTEGER);

insert into SalesAgg values(2004,20,30,15,10);

insert into SalesAgg values(2005,18,40,12,27);

Select * from SalesAgg

YEAR Q1 Q2 Q3 Q4

 ---- -- -- -- --

 2004 20 30 15 10

 2005 18 40 12 27

想把数据转成下面的样子

 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

列转换成行的SQL

SELECT Year, Quarter, Results

FROM SalesAgg AS S,

LATERAL(VALUES(1, S.q1),

(2, S.q2),

(3, S.q3),

(4, S.q4))

AS Q(Quarter, Results); LATERAL的地方可以换成TABLE,结果一样,其目的都是通过VALUES值来组合成一个临时表Q在SQL中使用

SELECT Year, Quarter, Results

FROM SalesAgg AS S,

TABLE(VALUES(1, S.q1),

(2, S.q2),

(3, S.q3),

(4, S.q4))

AS Q(Quarter, Results);

另外一个使用TABLE的例子

SELECT id ANSWER

    ,salary AS sal

    ,comm AS com

    ,combo

    ,typ

FROM staff

    ,TABLE (

        VALUES (

            salary

,SAL

            )

            ,(

            comm

            ,COM

            )

        ) AS tab(combo, typ)

WHERE id < 40

ORDER BY id

    ,typ;                   

行转列使用示例

CREATE OR REPLACE PROCEDURE DB2INST1.TEST(OUT out_msg VARCHAR(4000))

SPECIFIC DB2INST1.TEST

MODIFIES SQL DATA

NOT DETERMINISTIC

NULL CALL

LANGUAGE SQL EXTERNAL ACTION

INHERIT SPECIAL REGISTERS

BEGIN

    DECLARE v_col1s VARCHAR(4000);

DECLARE v_sql VARCHAR(4000);

SELECT SUBSTR(XMLCAST(XMLGROUP(, || col1 AS a ORDER BY col1) as varchar(4000)),2) into v_col1s FROM aaa;

    SET out_msg = SELECT * FROM aaa where col1 in ( || TRIM(v_col1s) || );     

看完上述内容,你们掌握DB2行列转置的行转列是怎样的的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:db2进程模型的示例分析
下一篇:Oracle索引的概念及分类是什么
相关文章

 发表评论

暂时没有评论,来抢沙发吧~