You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在BigQuery的SELECT语句中实现嵌套WHEN语句?

正确SQL写法及说明

你的原有写法不符合CASE表达式的标准语法,缺失第一层判断的返回分支、也没有闭合CASE结构,运行会直接报错。

你需要的嵌套判断逻辑可以用以下两种写法实现:

  • 写法1:条件拼接(更简洁,可读性更高)
CASE
  WHEN order_1 = 0 AND next = 0 THEN (order_1 - 5 = order_2)
  WHEN order_1 = 0 AND next <> 0 THEN (order_1 = next)
  -- 可在此处补充 order_1 不等于 0 时的返回逻辑,否则默认返回NULL
  -- ELSE 自定义默认值
END AS is_combined
  • 写法2:嵌套CASE结构(完全匹配你要求的嵌套WHEN逻辑)
CASE
  WHEN order_1 = 0 THEN
    CASE
      WHEN next = 0 THEN (order_1 - 5 = order_2)
      ELSE (order_1 = next)
    END
  -- 可在此处补充 order_1 不等于 0 时的返回逻辑,否则默认返回NULL
  -- ELSE 自定义默认值
END AS is_combined

补充说明:如果你的数据库不支持直接返回布尔值作为查询结果,可以把布尔判断包裹一层CASE WHEN 条件 THEN 1 ELSE 0 END转为1/0的数值类型使用。

内容的提问来源于stack exchange,提问作者Grzegorz Gabrychowicz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 18:06:03