【问题标题】:Teradata convert varchar column row values to ColumnsTeradata 将 varchar 列行值转换为 Columns
【发布时间】:2021-09-15 13:18:49
【问题描述】:

我有以下数据:

create volatile table current_data(
   id integer
,  rownumber integer
,  text_value varchar(10)
) on commit preserve rows;

insert into current_data values(1,1,'Text 1');
insert into current_data values(1,2,'Text 2');
insert into current_data values(1,3,'Text 3');
insert into current_data values(2,1,'Text 1');
insert into current_data values(2,2,'Text 2');

我怎样才能将current_data 转换为我的desired_data 这样?

create volatile table desired_data(
   id integer
,  text_value1 varchar(10)
,  text_value2 varchar(10)
,  text_value3 varchar(10)
) 
on commit preserve rows;

insert into desired_data values(1,'Text 1','Text 2','Text 3');
insert into desired_data values(2,'Text 1','Text 2',null);

*** 请注意,我会包含图片结果,但我没有适当的访问权限。

【问题讨论】:

    标签: sql teradata


    【解决方案1】:

    您可以使用条件聚合:

    select id,
           max(case when rownumber = 1 then text_value end) as text_value1,
           max(case when rownumber = 2 then text_value end) as text_value2,
           max(case when rownumber = 3 then text_value end) as text_value3
    from current_data
    group by id;
    

    【讨论】:

      【解决方案2】:

      【讨论】:

        猜你喜欢
        • 2017-08-09
        • 2014-08-16
        • 2018-12-21
        • 2018-10-03
        • 2015-06-27
        • 2014-08-01
        • 2019-01-23
        • 1970-01-01
        • 2013-12-08
        相关资源
        最近更新 更多