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

如何在非动态SQL中根据参数值条件添加WHERE子句条件

非动态SQL实现条件按需生效的方案

直接用逻辑表达式就能解决,不用折腾动态SQL。把原查询里的AND emp.isdeleted = @deleted替换成以下逻辑判断即可:

SELECT * 
FROM Employee 
WHERE emp.id = @ID 
  AND emp.Name = @Name
  AND (emp.isdeleted = @deleted OR @deleted IS NULL)

逻辑说明:

  • 当@deleted不为NULL时,@deleted IS NULL为假,此时条件等价于emp.isdeleted = @deleted,完全匹配你的需求;
  • 当@deleted为NULL时,@deleted IS NULL为真,整个括号内的条件直接成立,相当于这个过滤条件被自动跳过,不会对查询结果产生限制。

这种写法兼容绝大多数主流SQL数据库(比如SQL Server、MySQL、PostgreSQL等),而且完全不需要拼接动态SQL,很适合复杂查询场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 03:26:59