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

SQL新手求助:编写含Status2例外的Status1排除指定值SELECT查询

解决你的SQL查询需求

嘿,作为SQL新手遇到这种逻辑组合问题很正常,咱们直接来写符合你要求的查询语句:

首先,你需要的是满足两个条件中的任意一个就返回数据:

  • 要么 Status2 的值是 'same_day'(不管 Status1 是什么)
  • 要么 Status1 不在 ('Canceled','Cancelled') 这两个取消状态里

对应的SELECT语句如下:

SELECT *
FROM 你的表名
WHERE Status2 = 'same_day' 
   OR Status1 NOT IN ('Canceled', 'Cancelled');

简单解释下逻辑:

  • OR 关键字用来连接两个独立的条件,只要其中一个成立,这条数据就会被选中
  • NOT IN ('Canceled', 'Cancelled') 正好排除了两种拼写的取消状态,覆盖了可能的拼写差异
  • 当 Status2 = 'same_day' 时,后面的 Status1 条件会被忽略,完全符合你“无论Status1取值如何均返回”的要求

如果你的 Status1 字段可能存在 NULL 值(也就是没有状态值的情况),可以稍微调整一下条件,避免NULL被过滤掉:

SELECT *
FROM 你的表名
WHERE Status2 = 'same_day' 
   OR (Status1 IS NOT NULL AND Status1 NOT IN ('Canceled', 'Cancelled'));

这样就能确保NULL值的记录也能在Status2不是same_day时被正确判断啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:13:32