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

如何使用CASE语句筛选指定结果?WHERE条件查询结果异常求助

解决方案

方法一:直接组合WHERE条件(推荐)

这是最简洁高效的写法,直接通过逻辑运算符匹配需求:

WHERE ENTRY_MDE LIKE '09%' 
OR (ENTRY_MDE LIKE '08%' AND pin != 1)

逻辑说明:

  • ENTRY_MDE LIKE '09%':保留所有以09开头的记录,不受pin值限制
  • (ENTRY_MDE LIKE '08%' AND pin != 1):保留以08开头但pin不等于1的记录,自动排除ENTRY_MDE LIKE '08%' AND pin=1的情况

方法二:使用CASE语句实现

如果必须用CASE语句,可在WHERE子句中通过CASE返回的标识值过滤:

WHERE CASE 
    WHEN ENTRY_MDE LIKE '09%' THEN 1
    WHEN ENTRY_MDE LIKE '08%' AND pin != 1 THEN 1
    ELSE 0
END = 1

原查询的问题分析

原查询where(ENTRY_MDE like '09%' or ENTRY_MDE like '08%' ) and(entry mode like '08%' and pin=0)存在逻辑错误:

  • 后面的and(entry mode like '08%' and pin=0)会过滤掉所有以09开头的记录,违背需求
  • 仅保留了08开头且pin=0的记录,既没覆盖08开头pin为其他非1值的情况,也没排除pin=1的情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 15:15:37