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

BQ中WHERE子句CASE表达式作用机制及数值含义咨询

关于BigQuery中CASE表达式的疑问解答

1. CASE里的0和1代表什么?

这里的0和1是过滤标记值:

  • 0表示「当前行不符合保留条件,需要被排除」
  • 1表示「当前行符合保留条件,需要被留下」
    你平时用CASE是生成文本类字段值,而这里是把CASE当作返回0/1的判断逻辑,配合WHERE子句做数据筛选。

2. 'End = 1'是如何生效的?

整个CASE表达式会逐行计算出结果(要么0要么1),End = 1就是只保留那些CASE计算结果等于1的行。本质是让WHERE子句仅留下CASE判断为「符合保留条件」的数据行。

3. 当date_diff为138天时,表达式结果是1吗?

是的,两种情况都会返回1:

  • 若当前行FYW = '202251':date_diff=138 < 150,不满足WHEN的条件,CASE走ELSE返回1
  • 若当前行FYW不是'202251':不管date_diff是多少,CASE直接走ELSE返回1

此时CASE结果为1,这条数据会被保留。

4. 当date_diff为160天时,表达式结果是0还是会被忽略?

分情况判断:

  • 仅当FYW = '202251'且date_diff=160 >=150时,CASE返回0,此时End = 1不成立,这条数据会被WHERE子句过滤掉(即被忽略)
  • 若FYW不是'202251',哪怕date_diff=160,CASE仍返回1,数据会被保留

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 07:02:12