sql - 无论如何要缩短我的 BigQuery 脚本(for 循环?)
问题描述
好吧,我觉得我错过了一些非常基本的东西。TT
SELECT
CATEGORY,
PRODUCT,
(CASE
WHEN PRODUCT_DETAIL = 'STRAWBERRY' AND some_condition = x THEN 'REQUIRE REVIEW'
WHEN PRODUCT_DETAIL = 'COD' AND some_condition = x THEN 'REQUIRE REVIEW'
WHEN PRODUCT_DETAIL = 'MILK' AND some_condition = x THEN 'REQUIRE REVIEW'
WHEN PRODUCT_DETAIL = 'BREAD' AND some_condition = x THEN 'REQUIRE REVIEW'
...
WHEN PRODUCT_DETAIL = 'ICE CREAM' AND some_condition = x THEN 'REQUIRE REVIEW'
ELSE 'GOOD'
END) AS PRODUCT_CONDITION
FROM
MAIN_DATABASE
我想我的问题是因为 {AND some_condition = X THEN 'REQUIRE REVIEW'} 都是一样的,有没有办法将代码缩短为某种形式
WHEN PRODUCT_DETAIL = ('STRAWBERRY', 'COD', 'MILK', ... , 'ICE CREAM') AND some_condition = x
THEN 'REQUIRE REVIEW'
ELSE 'GOOD'
或者它的一些变化?
谢谢,CN
解决方案
您可以使用IN
:
(CASE WHEN PRODUCT_DETAIL IN ('STRAWBERRY' , 'COD', . . . ) AND
some_condition = x
THEN 'REQUIRE REVIEW'
ELSE 'GOOD'
END) AS PRODUCT_CONDITION
推荐阅读
- android - 固定移动应用程序的证书
- android - 我应该只向 build.gradle 添加一个“androidx.preference:preference:1.1.1”或“androidx.preference:preference-ktx:1.1.1”吗?
- azure - 这个 azure datafactory 错误有什么解决方案吗?
- c# - 如何反序列化动态 JsonProperty?
- protractor - 获取错误 protractor_1.browser.action 不是函数
- excel - 使用 Haskell 将 .xls 或 .xlsx 转换为 CSV 文件
- parquet - 如何在 Parquet 文件中增量存储时间序列以进行有效检索?
- php - 未找到基表或视图?
- html - HTML 字段集:表单属性不起作用
- javascript - 在纯节点 js 中将 mp4 或 Avi 转换为 m3u8