Plsql PL SQL+;使用替换变量的SQL简单语句

Plsql PL SQL+;使用替换变量的SQL简单语句,plsql,sqltools,Plsql,Sqltools,我想创建一个简单的IF-THEN-ELSE PL SQL,而不创建如下用于SQL工具的注释性块: variable a varchar2(20) variable b varchar2(20) EXEC :a := '&insert_value_a' EXEC :b := '&insert_value_b' --下一部分我不知道怎么做: 如果给定了value:a并且它不是NULL,那么 EXECUTE SELECT column1,column2,column3 FRO

我想创建一个简单的IF-THEN-ELSE PL SQL,而不创建如下用于SQL工具的注释性块:

variable a varchar2(20) 
variable b varchar2(20) 

EXEC :a := '&insert_value_a'
EXEC :b := '&insert_value_b'
--下一部分我不知道怎么做:

如果给定了value:a并且它不是NULL,那么

EXECUTE
SELECT column1,column2,column3 
FROM table
WHERE condition
AND column2 = :a or column3 = :a;

ELSE
--如果给定值b,则使用该值获取值:a

EXECUTE
SELECT column2 INTO :a 
FROM table
WHERE column_x = :b;

SELECT column1,column2,column3 
    FROM table
    WHERE condition
    AND column2 = :a or column3 = :a;
END;

尝试使用NVL,如下所示:

SELECT column1,column2,column3 
  FROM table
 WHERE condition
   AND column2 = NVL(:a,SELECT column2
                          FROM table
                         WHERE column_x = :b)
    or column3 = NVL(:a,SELECT column2
                          FROM table
                        WHERE column_x = :b);