SQL Server 中的条件 WHERE 子句
在 SQL Server 中,条件 WHERE 子句允许您根据特定条件指定用于筛选数据的标准。在某些情况下,您可能需要一个条件 WHERE 子句来评估条件并相应地调整筛选条件。以下是有效构建和使用条件 WHERE 子句的方法。
语法
基本的条件 WHERE 子句遵循以下语法:
<code class="language-sql">WHERE 逻辑表达式 AND (CASE WHEN 条件 THEN 表达式1 ELSE 表达式2 END)</code>
示例
让我们考虑您提供的示例:
<code class="language-sql">SELECT DateAppr, TimeAppr, ... FROM [test].[dbo].[MM] WHERE DateDropped = 0 AND (CASE WHEN @JobsOnHold = 1 THEN DateAppr >= 0 ELSE DateAppr != 0 END)</code>
此查询尝试筛选 DateDropped 为 0 且 DateAppr 满足基于 @JobsOnHold 值的特定条件的数据。但是,语法不正确。
正确的语法
要修复语法错误,请将条件表达式括在括号中:
<code class="language-sql">SELECT DateAppr, TimeAppr, ... 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
为 NULL 或缺失,则将其视为 0。OR
运算符确保条件在两种情况下都能正确工作。当 @JobsOnHold
为 1 时,DateAppr
必须大于或等于 0。否则,如果 @JobsOnHold
不为 1,则 DateAppr
必须不为 0。
其他注意事项
通过遵循这些准则,您可以有效地在 SQL Server 中使用条件 WHERE 子句根据特定条件筛选数据。
以上是如何在 SQL Server 中实现条件 WHERE 子句?的详细内容。更多信息请关注PHP中文网其他相关文章!