首頁 > 資料庫 > mysql教程 > 如何在沒有動態 SQL 的情況下在 SQL Server 中實作條件 WHERE 子句?

如何在沒有動態 SQL 的情況下在 SQL Server 中實作條件 WHERE 子句?

Mary-Kate Olsen
發布: 2025-01-18 11:06:09
原創
756 人瀏覽過

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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板