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

BigQuery按两列组合条件过滤指定行时SQL结果异常排查

错误原因
  • 现有SQL的过滤逻辑仅关联column1字段,未绑定年份字段column2,导致只要某个column1值在2020年或2021年的待排除列表中出现过,该值对应所有年份的行都会被过滤,而非仅删除指定年份的目标行。
  • 例如你需要排除的是2020年的2 - K和2021年的2 - K共2行,但现有逻辑会把所有年份的2 - K行全部删除,最终过滤行数自然远大于预期的8行。
修复方案

推荐使用NOT EXISTS实现精准的多条件匹配过滤,兼容性更强:

SELECT *
FROM xx.yy.zz t1
WHERE NOT EXISTS (
    SELECT 1
    WHERE t1.column1 IN ('2 - K','3 - K','19-1 - K','33 - K') AND t1.column2 = 2020
       OR t1.column1 IN ('304 - K','303 - K','2 - K','3 - K') AND t1.column2 = 2021
)

如果你的数据库支持多列IN操作,也可以使用如下写法:

SELECT *
FROM xx.yy.zz
WHERE (column1, column2) NOT IN (
    ('2 - K', 2020), ('3 - K', 2020), ('19-1 - K', 2020), ('33 - K', 2020),
    ('304 - K', 2021), ('303 - K', 2021), ('2 - K', 2021), ('3 - K', 2021)
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 02:39:05