【问题标题】:Hive : join 2 tables and select different columns in single queryHive:连接 2 个表并在单个查询中选择不同的列
【发布时间】:2017-11-16 00:08:06
【问题描述】:

我在蜂巢中有两个表,说表 A 和表 B。基本上我想加入它们,并希望根据单个查询中的某些条件选择不同的列。

表 A:

empid;name;sal;dept

1;'X';100;IT

2;'Y';100;IT

3;'Z';100;ADMIN

表 B:

empid;name;address

1;'X';A

2;'Y';B

3;'Z';C

期望的输出:

When Dept='IT'
select empid,name,address from Table A join Table B on (A.empid=B.empid)

When Dept='ADMIN'
select empid,address from Table A join Table B on (A.empid=B.empid)

有人可以帮我解决这个问题吗?

【问题讨论】:

    标签: hive


    【解决方案1】:

    如果您正在查找单个查询,则输出必须具有相同的结构。 由于某些安全原因,我假设您不想显示 ADMIN 的名称。

    如果是这样,您可以改为执行以下操作。管理员的姓名将显示为“姓名不可用”。希望这可以帮助。如果不是,请告诉我们您的问题背后的原因。

    SELECT ta.empid, 
           CASE WHEN ta.dept = 'IT' THEN ta.name
                WHEN ta.dept = 'ADMIN' THEN 'Name not available'
           END AS name,
           tb.address
      FROM tableA ta,
           tableB tb
    WHERE ta.empid = tb.empid;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-05
      • 2016-02-03
      • 1970-01-01
      • 2013-01-16
      • 2013-07-04
      相关资源
      最近更新 更多