修改完整版的sql存储(积分兑换脚本),改写出可执行的shell update "rpt_wjq_jf_value_dhfz_list" as "a" set "a"."club_level" = case when "b"."star_level" = '3100' then '1星' when "b"."star_level" = '3200' then '2星' when "b"."star_level" = '3300' then '3星' when "b"."star_level" = '3400' then '4星' when "b"."star_level" = '3500' then '5星' when "b"."star_level" = '3600' then '6星' when "b"."star_level" = '3700' then '7星' else '0星' end from "rptdev"."rpt_comm_cm_serv_cdma" as "b" where "a"."cust_id" = "b"."cust_id"; commit work;
时间: 2023-10-26 12:06:17 浏览: 28
以下是修改后的可执行的 shell 脚本:
#!/bin/bash
# 更新会员等级
isql -Usa -Ppassword -SSYBASE -w 999 -b -o /dev/null <<EOF
update rpt_wjq_jf_value_dhfz_list as a
set a.club_level = case
when b.star_level = '3100' then '1星'
when b.star_level = '3200' then '2星'
when b.star_level = '3300' then '3星'
when b.star_level = '3400' then '4星'
when b.star_level = '3500' then '5星'
when b.star_level = '3600' then '6星'
when b.star_level = '3700' then '7星'
else '0星'
end
from rptdev.rpt_comm_cm_serv_cdma as b
where a.cust_id = b.cust_id;
commit work;
EOF
echo "脚本执行完成!"
相关问题
将SQL代码转换成hive语法 truncate table rptdev.rpt_wjq_jf_value_dhfz_list;
在 Hive 中,TRUNCATE TABLE 语句的语法与 SQL 稍有不同。以下是将 SQL 代码转换为 Hive 语法的示例:
```
TRUNCATE TABLE rptdev.rpt_wjq_jf_value_dhfz_list;
```
注意,在 Hive 中,TRUNCATE TABLE 语句只能删除表中的数据,而无法删除表本身。因此,在执行 TRUNCATE TABLE 语句之前,应该确保您想要删除的数据是正确的。
将代码转换成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”。您需要根据实际情况修改列名和数据类型。