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中文网其他相关文章!