小编典典

oracle sql if条件则选择statement1 else select statement2

sql

我有参数 :prmtr ,我想要基于参数输入使用select语句。

我尝试了这个:

if :prmtr= 'A' then
    select * from tblA;
else
    select * from tblB;
end if;

但它不会工作。

还有其他方法可以做到这一点吗?


阅读 184

收藏
2021-04-14

共1个答案

小编典典

您可以使用CURSOR变量和PRINT命令尝试类似的操作。当作为脚本运行时,这在SQL * plus和SQL Developer或TOAD中都有效。

VARIABLE prmtr VARCHAR2
EXEC :PRMTR := 'A'  -- SET values of parameter

VARIABLE x refcursor -- a cursor variable

DECLARE
BEGIN
    IF :PRMTR = 'A' THEN
      OPEN :x FOR
        SELECT *
        FROM   employees;
    ELSE
      OPEN :x FOR
        SELECT *
        FROM   departments;
    END IF;
END;
/

PRINT x  -- gives you the result of the query.
2021-04-14