Sql Server,其中大小写空是否为空

我有一个程序接收一个名为
@FL_FINALIZADA
的位变量。 如果它为null或false,我想限制我的select只显示包含null
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
    )
在这种情况下,我收到消息:   没有结果表达式   
CASE
规格可以是
NULL
。 我怎样才能做到这一点? 提前致谢。     
已邀请:
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
     )
    
将AND更改为:
AND (((@FL_FINALIZADA <> 1) AND (OPE.DT_FINALIZACAO IS NULL)) OR ( (@FL_FINALIZADA = 1) AND (OPE.DT_FINALIZACAO IS NOT NULL)))
如果位标志为1,则DT_FINALIZACAO不能为空。     
IF @FL_FINALIZADA IS NULL
    SET @FL_FINALIZADA = 0

SELECT * FROM NewsletterSubscribers 
WHERE
   (@FL_FINALIZADA = 0 AND OPE.DT_FINALIZACAO IS NULL) 
   OR 
   (@FL_FINALIZADA = 1 AND OPE.DT_FINALIZACAO IS NOT NULL)
    
我的详细SQL有点生疏,但你尝试使用0 insted NULL吗?我希望0在该选择中评估与NULL相同     

要回复问题请先登录注册