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