我有一个光标,我正在传递一个标志并在该光标内,我正在使用以下条件
cursor abc (c_flag )
IS
select 1
from pqr p
where p.c1 = CASE c_flag ='Y'
THEN p.c1
ELSE IS NOT NULL
END
现在问题是ELSE案例对我不起作用,因为它应该像p.c1 IS NOT NULL
那样写,而不是p.c1 = IS NOT NULL。
我认为你得到了我想要做的事情,如果c_flag
是肯定的,我将记录所有记录,如果没有,则选择所有非空记录。
我使用Oracle作为RDBMS。
答案 0 :(得分:5)
您可以将OR
用于此
SELECT 1
FROM pqr p
WHERE c_flag = 'Y'
OR p.c1 IS NOT NULL
答案 1 :(得分:2)
cursor abc (c_flag )
IS
select 1
from pqr p
where 1 = CASE
when c_flag ='Y' then 1
when p.c1 IS NOT NULL then 1
else 0
END