配置单元表匹配并拾取不同列中的值

8hhllhi2  于 2021-06-27  发布在  Hive
关注(0)|答案(1)|浏览(424)

我有一个输入表:

c_no    acc_no  acc_line_no ref_acc ref_acc_item    bt_no
4           a12          50   39080           40    0
4           a13          10   39080           10    0
4           a14          20   39080           20    0
4           a15          30   39080           21    20
4           a16          40   39080           30    0
4           a17          31                    0    20

issue:ref_acc_item 对于同一个c\u no,bt\u no为零或为空;
分辨率:
如果ref\u item为空,则bt\u no中的值20需要与acc\u line\u no匹配(此处第3行匹配20),并将ref\u acc设置为第3行ref\u acc value中的ref\u acc item和bt\u no中的ref\u acc item设置为20
输出表:

c_no   acc_no  acc_line_no ref_acc ref_acc_item    bt_no
4           a12          50   39080           40    0
4           a13          10   39080           10    0
4           a14          20   39080           20    0
4           a15          30   39080           21    20
4           a16          40   39080           30    0
4           a17          31   39080           20    20

请帮我在Hive里完成这个。提前谢谢

qco9c6ql

qco9c6ql1#

你可以很容易地做到这一点 if 陈述

select 
c_no,
acc_no,
acc_line_no,
ref_acc,
if(ref_acc_item = "0" or ref_acc_item = "", bt_no, ref_acc_item ),
bt_no
from yourtable

相关问题