Sql Server,其中大小写为空,否则不为空

Fab*_*uma 0 sql sql-server stored-procedures case

我有一个程序接收一个名为的变量@FL_FINALIZADA.

如果它为null或false,我想限制我的select只显示包含空DT_FINALIZACAO值的行.否则,我想显示包含非空DT_FINALIZACAO值的行.

像这样的东西:

SELECT 
    * 
FROM 
    MyTable 
WHERE 
    ...
    AND
    (
        OPE.DT_FINALIZACAO = (
            CASE
                WHEN (@FL_FINALIZADA <> 1)
                    THEN NULL
                END
        ) OR 
        OPE.DT_FINALIZACAO IS NOT NULL
    )
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我收到消息:

CASE规范中的结果表达式都不 是NULL.

我怎样才能做到这一点?

提前致谢.

Mic*_*uen 7

SELECT 
    * 
FROM 
    MyTable 
WHERE
    (ISNULL(@FL_FINALIZADA, 0) = 0
     AND
     OPE.DT_FINALIZACAO IS NULL
     )
     OR
     (@FL_FINALIZADA = 1
      AND
      OPE.DT_FINALIZACAO IS NOT NULL
     )
Run Code Online (Sandbox Code Playgroud)