我是新来的Hive和我的sql知识是有点生疏,因此张贴问题就这样。
我有一个sap表中的数据,其中一列的值丢失。我想知道如何填充这些列。
例子:
+----------+-----------+--------+
| EBELN | BELNR | EBELP |
|----------+-----------+--------|
| 1 | 123 | 001 |
|----------+-----------+--------|
| | 123 | 002 |
|----------+-----------+--------|
| | 123 | 003 |
+----------+-----------+--------+
在上表中,所有三行都相互关联,但值 EBELN
列仅出现在第一行中。
当我使用 EBELN
列作为联接键,联接中只显示第一行。我要将输出联接中的所有三行都带到。
Expected output:
+----------+-----------+--------+
| EBELN | BELNR | EBELP |
|----------+-----------+--------|
| 1 | 123 | 001 |
|----------+-----------+--------|
| 1 | 123 | 002 |
|----------+-----------+--------|
| 1 | 123 | 003 |
+----------+-----------+--------+
我希望输出是这样的,这样我就可以使用 EBELN
列。
我要加入的表不包含 BELNR
或者 EBELP
所以我不能用这些列来连接。
我想知道我能不能用 self join
或者这里还有什么我可以用的。
添加更多信息。我还有其他的table叫它d。那张table有 EBELN
列。
+----------+-----------+--------+
| EBELN | COL12 | COL13 |
|----------+-----------+--------|
| 1 | ABC | LMN |
|----------+-----------+--------|
| 2 | DEF | OPQ |
|----------+-----------+--------|
| 3 | GHI | RST |
+----------+-----------+--------+
我正在尝试使用将这个“d”表与“ekpf”表连接起来 EBELN
列。
我要把所有的行都找出来 BELNR
数字相同,但自 BELNR
列不在中 ABCD
表,我不能用它来加入。
最终连接的输出应该如下所示
+----------+-----------+--------+--------+--------+
| EBELN | BELNR | EBELP | COL12 | COL13 |
|----------+-----------+--------+--------+--------|
| 1 | 123 | 001 | ABC | LMN |
|----------+-----------+--------+--------+--------|
| | 123 | 002 | ABC | LMN |
|----------+-----------+--------+--------+--------|
| | 123 | 003 | ABC | LMN |
|----------+-----------+--------+--------+--------|
| 2 | | | DEF | OPQ |
|----------+-----------+--------+--------+--------|
| 3 | | | GHI | RST |
+----------+-----------+--------+--------+--------+
2条答案
按热度按时间up9lanfz1#
在hive中,您可以使用其中一个条件函数来实现输出。
如果使用coalsce,只需执行以下操作:
同样从hive0.11开始,您可以使用nvl函数
wlzqhblo2#
如果希望第一个(左)表中的所有记录在结果中生成相应的记录,即使第二个(右)表中没有匹配的记录,也可以使用
LEFT
加入。对于相反的情况,一次使用RIGHT
加入。因为您想保留连接两边的记录,所以需要FULL OUTER
加入。+----------+-----------+--------+--------+--------+
| EBELN | BELNR | EBELP | COL12 | COL13 |
|----------+-----------+--------+--------+--------|
| 1 | 123 | 001 | ABC | LMN |
|----------+-----------+--------+--------+--------|
| | 123 | 002 | ABC | LMN |
|----------+-----------+--------+--------+--------|
| | 123 | 003 | ABC | LMN |
|----------+-----------+--------+--------+--------|
| 2 | | | DEF | OPQ |
|----------+-----------+--------+--------+--------|
| 3 | | | GHI | RST |
+----------+-----------+--------+--------+--------+