带有WHERE子句条件的SQL游标

gau*_*rav 0 sql oracle

我有一个光标,我传递一个标志,并在该光标内,我使用以下条件

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
Run Code Online (Sandbox Code Playgroud)

现在的问题是ELSE案例对我来说不起作用,因为它应该写成p.c1 IS NOT NULL,而不是p.c1 = IS NOT NULL.

我想你得到了我想做的事,如果c_flag是的话,我会记录所有的记录,如果没有,那么选择所有非空记录.我使用Oracle作为RDBMS.

Mar*_*ith 5

你可以用OR

SELECT 1
FROM   pqr p
WHERE  c_flag = 'Y'
        OR p.c1 IS NOT NULL
Run Code Online (Sandbox Code Playgroud)