如何修改BigQuery SQL中的CASE WHEN语句使其可正常运行?
BigQuery CASE WHEN 语句修改指南
你之前的报错核心是套用了其他编程语言的IF语法,不符合SQL的CASE WHEN固定结构,下面直接给出第一个条件判断的正确写法,你可以直接套用调整:
单条件判断基础写法示例
SELECT -- 以下为单个CASE WHEN条件的标准结构,替换成你自己的判断逻辑即可 CASE WHEN [你要判断的条件,比如 order_payment_amount > 100] THEN [条件成立时返回的结果,比如 '高价值订单'] ELSE [条件不成立时返回的结果,比如 '普通订单'] END AS [自定义的新列名,比如 order_value_level] -- 可以继续加其他要查询的原始列 , order_id, user_id, create_time FROM `你的BigQuery项目ID.数据集名称.表名称`
核心注意事项
- CASE结构必须以
END收尾,漏写会直接触发语法错误 - 条件涉及字符串对比时,字符串值需要包裹单引号,比如
user_region = '华东' - BigQuery的表路径需要用反引号`包裹,不要使用单引号、双引号
3次条件判断扩展写法(后续可参考)
如果需要实现3层连续条件判断,直接在第一个WHEN之后追加更多WHEN子句即可,逻辑为从上到下依次匹配,命中第一个符合的条件后就会返回对应结果,不再校验后续条件:
SELECT CASE WHEN 条件1 THEN 结果1 WHEN 条件2 THEN 结果2 WHEN 条件3 THEN 结果3 ELSE 所有条件都不命中时的默认结果 END AS 自定义列名 FROM `你的BigQuery项目ID.数据集名称.表名称`
内容的提问来源于stack exchange,提问作者David Šugár
相关产品推荐
相关产品推荐

