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

多条件WHERE子句SQL查询问题:筛选指定状态产品

问题分析

  • 第一个SQL语句错误:使用AND连接两个互斥的SystemProductID条件,单条记录不可能同时等于两个不同ID,因此无返回结果。
  • 第二个SQL语句错误:EXISTS仅判断表中是否存在满足条件的记录,一旦存在就会返回表中所有数据,无法筛选出目标ID的记录。

正确SQL语句

要获取指定的两个产品记录,可通过以下两种方式实现:

写法一:使用OR匹配每个ID的对应状态

SELECT * 
FROM product WITH (NOLOCK)
WHERE 
    (SystemProductID = '5146324' AND EndDate != '4712-12-31 00:00:00.000')
    OR (SystemProductID = '5148478' AND EndDate = '4712-12-31 00:00:00.000')

写法二:使用IN配合条件逻辑(扩展ID时更灵活)

SELECT * 
FROM product WITH (NOLOCK)
WHERE 
    SystemProductID IN ('5146324', '5148478')
    AND (
        (SystemProductID = '5146324' AND EndDate != '4712-12-31 00:00:00.000')
        OR (SystemProductID = '5148478' AND EndDate = '4712-12-31 00:00:00.000')
    )

执行以上语句即可得到你期望的两条产品记录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 21:52:34