首页 > 数据库 > mysql教程 > 如何在没有动态 SQL 的情况下在 SQL Server 中实现条件 WHERE 子句?

如何在没有动态 SQL 的情况下在 SQL Server 中实现条件 WHERE 子句?

Mary-Kate Olsen
发布: 2025-01-18 11:06:09
原创
712 人浏览过

How to Implement a Conditional WHERE Clause in SQL Server Without Dynamic SQL?

SQL Server中的条件WHERE子句

问题:

如何在不使用动态SQL或创建具有不同子句的多个查询的情况下,在SQL Server中实现条件WHERE子句?

解答:

您可以使用以下方法:

<code class="language-sql">SELECT 
    DateAppr,
    TimeAppr,
    TAT,
    LaserLTR,
    Permit,
    LtrPrinter,
    JobName,
    JobNumber,
    JobDesc,
    ActQty,
    (ActQty-LtrPrinted) AS L,
    (ActQty-QtyInserted) AS M,
    ((ActQty-LtrPrinted)-(ActQty-QtyInserted)) AS N
FROM 
    [test].[dbo].[MM]
WHERE 
    DateDropped = 0
    AND (
    (ISNULL(@JobsOnHold, 0) = 1 AND DateAppr >= 0) 
    OR 
    (ISNULL(@JobsOnHold, 0) <> 1 AND DateAppr <> 0)
    )</code>
登录后复制

在这个查询中:

  • ISNULL() 函数检查 @JobsOnHold 参数是否为空,如果为空则返回 0。
  • 括号中的条件表达式检查 @JobsOnHold 参数的值。如果值为 1,则 DateAppr 列必须大于或等于 0。如果值不为 1,则 DateAppr 列必须不等于 0。
  • AND 运算符确保同时满足这两个条件。

这种方法允许您使用单个查询和条件 WHERE 子句来根据参数的值筛选结果。与使用多个查询或动态 SQL 相比,这是一种更高效、更简洁的编写此类查询的方法。

以上是如何在没有动态 SQL 的情况下在 SQL Server 中实现条件 WHERE 子句?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板