sql—使用基于另一个表的条件列创建新的配置单元表

mwg9r5ms  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(296)

我正在尝试基于现有表创建一个新的配置单元表。我需要一个if语句的帮助,该语句允许我从原始表中的两个独立列创建一个合并列。列new\u name&old\u item和uh\u new\u name和uh\u old\u item具有相同的数据,我希望只有一列。我不能改变这张table,因为它有Hive。最后,我需要id,open\u time,然后是列的组合。
下面是创建表的代码:

CREATE TABLE CIs
  AS SELECT id, open_time, new_name, uh_new_name, old_item, uh_old_item from sm
        where open_time like '2016%' or open_time like '2017%'
        order by open_time desc;

以下是我需要的合并列背后的一般逻辑:

If id like 'AB%' then old_item else new_item as combo_code
IF id like 'AB%' then uh_old_item else uh_new_item as combo_name
hfyxw5xn

hfyxw5xn1#

这只需要一个简单的case语句作为select的一部分:

case when id like 'AB%' then old_item else new_item end as combo_code,
case when id like 'AB%' then uh_old_item else uh_new_item end as combo_name

相关问题