我的输入表为:
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
问题:ref_acc_item和bt_no为零,或者对于相同的c_no为空白;
分辨率:
如果ref_item为空,则bt_no中的值20必须与acc_line_no匹配(此处第3行匹配20),并将ref_acc设置为第3行中的ref_acc值,而ref_acc_item设置为20,如bt_no
输出表:
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中实现这一目标。预先感谢
答案 0 :(得分:0)
您可以使用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