猿问

SQLServer中的条件WHERE子句

SQLServer中的条件WHERE子句

我正在创建一个SQL查询,其中我需要一个条件。where条款。

应该是这样的:

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
            --This is where i need the conditional clause 
    AND CASE
            WHEN @JobsOnHold = 1 THEN DateAppr >=  0
            ELSE  DateAppr != 0
        END

以上查询不起作用。这不是正确的语法吗,还是我不知道的另一种方法?

我不想使用动态SQL,那么还有其他方法吗?还是必须使用解决办法,比如使用if else和使用相同的查询where条款?


慕妹3146593
浏览 1560回答 3
3回答

神不在的星期二

尝尝这个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)     )

ABOUTYOU

试试这个-WHERE DateDropped = 0     AND (         (ISNULL(@JobsOnHold, 0) = 1 AND DateAppr >= 0)          OR          (ISNULL(@JobsOnHold, 0) != 1 AND DateAppr != 0)     )
随时随地看视频慕课网APP
我要回答