首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用update函数将字段中的所有变量更改为3个值。替换不起作用,更新似乎接近成功了?SQL BigQuery

如何使用update函数将字段中的所有变量更改为3个值。替换不起作用,更新似乎接近成功了?SQL BigQuery
EN

Stack Overflow用户
提问于 2019-10-24 19:25:05
回答 1查看 141关注 0票数 0

我正在尝试将所有条目更改为3个值:销售票证、服务票证和技术票证。Replace似乎会创建新的条目,比如销售票据,所以我转到了Update功能,这听起来是正确的,但我在下面得到了一个语法错误。你能帮个忙吗?

‘更新tester-253410.test1.3foot

SET string_field_1 =‘销售票证’

其中string_field_1 =‘计划和交易(销售房屋计划和交易)’

和string_field_1 =‘家庭电话升级’

和string_field_1 =‘家庭电话-计划和交易’

和string_field_1 =‘手机设备-套餐和交易’

和string_field_1 =‘商务手机-套餐&交易’

和string_field_1 =‘计划和交易(移动销售)’

和string_field_1 =‘家庭互联网&数据-计划&交易’

和string_field_1 =‘手机互联网和数据升级’

和string_field_1 =‘手机互联网&数据-计划&交易’

和string_field_1 =‘购买语音和数据捆绑包’

和string_field_1 =‘购买数据捆绑包(快速)’

和string_field_1 =‘商业互联网和数据-计划和交易’

和string_field_1 =‘购买服务时间(快递)’

结束,

设置string_field_1 =‘服务票证’

其中string_field_1 =‘家庭互联网和数据取消’

和‘家庭互联网和数据-计费查询’

EN

回答 1

Stack Overflow用户

发布于 2019-10-24 19:28:08

我想你需要一个case表达式:

代码语言:javascript
复制
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)
    WHERE true;

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

注意:我不喜欢就地更新数据。相反,我建议您为票据类型创建一个具有查找值的引用表。然后,您可以简单地在引用表中联接以获取类型--并且仍然拥有原始字符串。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58540318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档