回答

收藏

SQL Server中的条件WHERE子句

技术问答 技术问答 76 人阅读 | 0 人回复 | 2023-09-13

我正在创造一个需要条件where子句的SQL查询。
- q5 @/ ]6 @  \/ `应该是这样的:
. N; K+ ~  q3 e2 f. @/ b$ e( \SELECT     DateAppr,   TimeAppr,   TAT,   LaserLTR,   Permit,   LtrPrinter,   JobName,   JobNumber,   JobDesc,   ActQty,   (ActQty-LtrPrinted) AS L,   (ActQty-QtyInserted) AS M,   ((ActQty-LtrPrinted)-(ActQty-QtyInserted)) AS NFROM     [test].[dbo].[MM]WHERE     DateDropped =          --This is where i need the conditional clause     AND CASE            WHEN @JobsOnHold = 1 THEN DateAppr >=           ELSE  DateAppr !=        END以上查询无效。这是不正确的语法,还是我不知道的另一种方式?( Z( c: k) q& f% i  O
我不想使用动态SQL,是否还有其他方法,或者必须使用类似的解决方案,如if else对不同的where使用和使用同样的查询?
: R; y( Y. m, r" }                                                                ! d/ L6 f' r2 w# o6 Y1 C
    解决方案:                                                               
+ P1 b7 ?2 d9 f2 ^2 @0 t, [- u                                                                试试这个
3 p& z3 l' y. I  c5 @SELECT     DateAppr,   TimeAppr,   TAT,   LaserLTR,   Permit,   LtrPrinter,   JobName,   JobNumber,   JobDesc,   ActQty,   (ActQty-LtrPrinted) AS L,   (ActQty-QtyInserted) AS M,   ((ActQty-LtrPrinted)-(ActQty-QtyInserted)) AS NFROM     [test].[dbo].[MM]WHERE     DateDropped = 0    AND  (ISNULL(@JobsOnHold,0) = 1 AND DateAppr >= 0)     OR     (ISNULL(@JobsOnHold,0) != 1 AND DateAppr != 0)    )您可以在这里阅读相关条件WHERE更多信息。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则