我如何使用更新功能将字段中的所有变量更改为3个值。替换没有用,更新似乎快到了? SQL BigQuery

问题描述 投票:0回答:1

我正在尝试将所有条目更改为3个值:销售票,服务票和技术票。替换似乎会创建新的条目,如Sales Ticket Ticket,因此我移到了Update函数,听起来像是正确的函数,但是下面出现语法错误。您能帮忙吗?

'''更新tester-253410.test1.3foot

SET string_field_1 ='销售单'

[WHERE string_field_1 ='计划和交易(销售家庭计划和交易)'

AND string_field_1 ='家庭电话-升级'

AND string_field_1 ='家庭电话-计划和优惠'

AND string_field_1 ='手机-计划和交易'

AND string_field_1 ='商务手机-计划和交易'

AND string_field_1 ='计划和交易(销售手机)'

AND string_field_1 ='家庭Internet和数据-计划和优惠'

AND string_field_1 ='手机的互联网和数据-升级'

AND string_field_1 ='手机互联网和数据-计划和交易'

AND string_field_1 ='购买语音和数据包'

AND string_field_1 ='购买数据包(快速)'

AND string_field_1 ='商业互联网与数据-计划与交易'

AND string_field_1 ='购买通话时间(快递)'

END,

SET string_field_1 ='服务票'

WHERE string_field_1 ='家庭Internet和数据-取消'

AND'家庭互联网和数据-帐单查询''''

sql google-bigquery
1个回答
0
投票

我认为您想要case表达式:

UPDATE tester-253410.test1.3foot
    SET string_field_1 = (CASE WHEN string_field_1 IN ('Plans and Deals (Sales Home Plans and Deals)', string_field_1 = 'Home Telephone - Upgrade', . . . )
                               THEN 'Sales Ticket'
                               WHEN string_field_1 IN ('Home Internet & Data - Cancellation', . . .)
                               THEN 'Service Ticket'
                               ELSE 'Technical Ticket'
                          END);

我简化了长长的字符串列表,因此. . .用于附加的字符串值。

注意:我不喜欢就地更新数据。相反,我建议您创建一个具有故障单类型查找值的参考表。然后,您可以简单地加入引用表以获取类型-并保留原始字符串。

© www.soinside.com 2019 - 2024. All rights reserved.