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中文網其他相關文章!