oracle sql if condition然后select statement1 else select statement2

时间:2018-04-12 03:29:46

标签: sql oracle oracle11g

我有参数:prmtr ,我想要的是根据参数输入使用select语句。

我试过了:

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

但它不起作用。

还有其他方法吗?

1 个答案:

答案 0 :(得分:2)

您可以使用CURSOR变量和PRINT命令尝试这样的操作。当在脚本中运行时,这适用于SQL * plus以及SQL开发人员或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.