对于hive外连接,如果一个表中不存在连接键,hive则将放入NULL.可以使用另一个值吗?例如:
表格1:
user_id, name, age
1 Bob 23
2 Jim 43
Run Code Online (Sandbox Code Playgroud)
表2:
user_id, txn_amt, date
1 20.00 2013-12-10
1 10.00 2014-07-01
Run Code Online (Sandbox Code Playgroud)
如果我做一个LEFT OUTER JOIN上user_id:
INSERT INTO TABLE user_txn
SELECT
Table1.user_id,
Table1.name,
Table2.txn_amt,
Table2.date
FROM
Table2
LEFT OUTER JOIN
Table1
ON
Table1.user_id = Table2.user_id;
Run Code Online (Sandbox Code Playgroud)
我想输出是这样的:
user_id, name, tnx_amt, date
1 Bob 20.00 2013-12-10
1 Bob 10.00 2014-07-01
2 Jim 0.00 2099-12-31
Run Code Online (Sandbox Code Playgroud)
请注意Jim 的txn_amt和date列.有没有办法hive定义这样的默认值?
Don*_*ner 11
您可以使用COALESCE此而不是单独使用Table2.txn_amt
COALESCE(Table2.txn_amt, 0.0)
Run Code Online (Sandbox Code Playgroud)
这样做会返回非空的第一个值.因此,如果txn_amt为null,它将转到列表中的第二个值.0.0永远不会为空,所以它会选择它.如果txn_amt有一个值,它将返回该值.
| 归档时间: |
|
| 查看次数: |
5632 次 |
| 最近记录: |