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

SQL WHERE子句嵌入条件判断:特定ID的Quantity过滤需求

问题:存储过程SELECT语句的WHERE子句过滤逻辑实现

首先来看原始数据集:

DNo Quantity Sites ID Desc 
---------------------------------------------------------------------------- 
18050075 9 2 ADD6 Number of client reporting sites 
18050075 9 2 ADD7 Annual Maintenance 
18050075 9 2 ADD8 Ongoing Fees 
18050075 1 2 ADD9 Employee Meeting (per day plus incurred expenses) 
18050075 0 2 ADD10 Custom Data file Layouts 
18050075 0 2 ADD11 Error Correction for more than 2% errors in a single 

需求明确:在存储过程的SELECT语句中,仅当Quantity>0时返回ADD9、ADD10、ADD11,其余ID不受此条件限制,预期结果集如下:

18050075 9 2 ADD6 Number of client reporting sites 
18050075 9 2 ADD7 Annual Maintenance 
18050075 9 2 ADD8 Ongoing Fees 
18050075 1 2 ADD9 Employee Meeting (per day plus incurred expenses) 

解决方案

把逻辑拆成两部分写进WHERE子句就行,直接看代码示例:

SELECT DNo, Quantity, Sites, ID, [Desc]
FROM 你的目标表名
WHERE 
    -- 第一部分:ADD6/ADD7/ADD8不受Quantity限制,全部保留
    ID IN ('ADD6', 'ADD7', 'ADD8')
    -- 第二部分:ADD9/ADD10/ADD11仅保留Quantity大于0的记录
    OR (ID IN ('ADD9', 'ADD10', 'ADD11') AND Quantity > 0)

简单捋下逻辑:

  • 对于不需要限制的ID(ADD6、ADD7、ADD8),直接通过ID IN (...)保留它们的所有记录,不管Quantity取值;
  • 对于需要限制的ID(ADD9、ADD10、ADD11),用括号把两个条件绑定,只有同时满足ID属于这三个且Quantity>0时,才会被筛选出来。

这样组合起来就完全匹配你的需求啦,运行后就能得到预期的结果集。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:18:01