改写成hive update "rpt_wjq_jf_value_dhfz_list" as "a" set "a"."subst_name" = "b"."aliasname", "a"."seq_id" = "b"."seq_id" from "dim_subst" as "b" where "a"."subst_id" = "b"."subst_id";
时间: 2023-06-28 19:12:15 浏览: 100
在 Hive 中,可以使用如下 SQL 语句来实现类似功能:
```
UPDATE rpt_wjq_jf_value_dhfz_list a
SET subst_name = b.aliasname, seq_id = b.seq_id
FROM dim_subst b
WHERE a.subst_id = b.subst_id;
```
需要注意的是,在 Hive 中,UPDATE 语句通常需要配合使用 INSERT OVERWRITE 语句来实现,具体可以根据业务需求进行调整。
相关问题
将代码转换成hive语法 update rpt_wjq_jf_value_dhfz_list as a set a.acc_nbr = b.acc_nbr, a.cust_nbr = b.cust_nbr, a.subst_id = b.subst_id from rptdev.rpt_comm_cm_serv_cdma as b where a.cust_id = b.cust_id;
在Hive中,不支持Update语法,但可以使用INSERT OVERWRITE语句进行更新操作。以下是将代码转换为Hive语法的示例:
```
INSERT OVERWRITE TABLE rpt_wjq_jf_value_dhfz_list
SELECT b.acc_nbr, b.cust_nbr, b.subst_id, a.*
FROM rpt_wjq_jf_value_dhfz_list a
JOIN rptdev.rpt_comm_cm_serv_cdma b ON a.cust_id = b.cust_id;
```
该语句将会把rpt_wjq_jf_value_dhfz_list表中的a.acc_nbr, a.cust_nbr, a.subst_id字段更新为rptdev.rpt_comm_cm_serv_cdma表中的b.acc_nbr, b.cust_nbr, b.subst_id字段。JOIN条件为a.cust_id = b.cust_id。
将代码转换成hive语法alter table rpt_wjq_jf_value_dhfz_list add (acc_nbr varchar(21),cust_nbr varchar(30),subst_id numeric(18));commit; update rpt_wjq_jf_value_dhfz_list as a set a.acc_nbr = b.acc_nbr, a.cust_nbr = b.cust_nbr, a.subst_id = b.subst_id from rptdev.rpt_comm_cm_serv_cdma as b where a.cust_id = b.cust_id;
请注意,Hive语法不支持直接的更新(UPDATE)语句,所以您需要使用HiveQL的替代方法来完成这个操作。下面是一个可能的转换:
```
-- 添加列
ALTER TABLE rpt_wjq_jf_value_dhfz_list ADD COLUMNS (acc_nbr STRING, cust_nbr STRING, subst_id BIGINT);
-- 将数据从rptdev.rpt_comm_cm_serv_cdma表中合并到rpt_wjq_jf_value_dhfz_list表中
INSERT OVERWRITE TABLE rpt_wjq_jf_value_dhfz_list
SELECT
a.col1,
a.col2,
b.acc_nbr,
b.cust_nbr,
b.subst_id,
a.col6,
a.col7,
a.col8
FROM
(SELECT * FROM rpt_wjq_jf_value_dhfz_list) a
JOIN rptdev.rpt_comm_cm_serv_cdma b ON a.cust_id = b.cust_id;
```
请注意,上面的代码假设原始表(rpt_wjq_jf_value_dhfz_list)有8个列,其中第一列名为“col1”,最后一列名为“col8”。您需要根据实际情况修改列名和数据类型。
阅读全文