【发布时间】:2015-07-06 06:10:55
【问题描述】:
我需要在hive 中编写查询,我需要在col1 上加入tableA 和TableB,如果匹配则处理完成。但是如果我们没有得到任何匹配的记录,那么我们需要对col2 执行不同的连接条件。
谁能帮我解决这个问题?提前致谢。
我需要这样的东西:
create table Data1 AS
select *
from table1
join table2
on table1.a = table2.a;
- 我想检查第一个表是否为空,如果不为空,则只创建第二个。
- 我不知道如何检查第一个表中是否有数据
create table Data2 AS
select *
from table1
join table2
on table1.b = table2.b;
---------示例第二次加入 -----
with tableA as (
select 1 as a, 22 as b
union
select 2 as a, 23 as b
union
select 3 as a, 2 as b
)
,
tableB as (
select 111 as a, 2 as b
union
select 222 as a, 1 as b
)
select x.* from
tableA x join tableB y
on x.b=y.b
所以它应该回答 3,2,它使用第二个连接,因为我们没有第一个匹配的记录。
---------首次加入
with tableA as (
select 1 as a, 22 as b
union
select 2 as a, 23 as b
union
select 3 as a, 2 as b
)
,
tableB as (
select 1 as a, 2 as b
union
select 2 as a, 1 as b
)
select x.* from
tableA x join tableB y
on x.a=y.a
它应该给出以下结果:
a b
1 22
2 23
由于第一次连接有效,我们不应该得到任何与第二次连接条件匹配的记录。
***** 抱歉,我使用了 SQL Server 中的示例数据,而不是配置单元
【问题讨论】:
-
您好,欢迎来到 SO!你能用你已经尝试过的查询来更新你的问题吗?努力解决自己的问题会极大地激励(并帮助!)社区与您一起解决问题。