回答

收藏

SQL Server中的条件WHERE子句

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

我正在创造一个需要条件where子句的SQL查询。8 f( N7 l4 y0 _% Y1 G
应该是这样的:4 X6 A7 ~, O: s% ^4 U( O3 \
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以上查询无效。这是不正确的语法,还是我不知道的另一种方式?! [" q) W! Y& c- q0 n( J; g! k( C
我不想使用动态SQL,是否还有其他方法,或者必须使用类似的解决方案,如if else对不同的where使用和使用同样的查询?
* ^  j; U: V: J                                                                # j6 ]% A" y( f4 _* C; C
    解决方案:                                                                1 V' \, n- @5 L* |( x( X" F
                                                                试试这个
8 {7 i+ h( V1 `& LSELECT     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更多信息。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则