我在hive中有两个表,如表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)
有人可以帮我解决这个问题吗?
答案 0 :(得分:0)
如果您要查找单个查询,则输出必须位于相同的结构中。 我认为由于某些安全原因,您不想显示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;