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.
我怎样才能做到这一点?
提前致谢.
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)