Oracle PL / SQL:条件Where子句

时间:2017-01-16 19:09:03

标签: oracle plsql

有人可以指导我如何处理以下事项:

x CHAR:= 'Y'; --VARIABLE

SELECT a.id, a.name, a.description
FROM Table1 a
WHERE (IF x = 'Y' THEN 
    a.name = parameter /*FILTER BY NAME*/
    ELSE 
    /*BRING ALL (NO NAME FILTER*/);

我正在尝试执行条件WHERE条款。 IF x = 'Y'然后按名称过滤;否则带上所有名字......执行上述操作的最佳方法是什么?

1 个答案:

答案 0 :(得分:3)

您只需要在OR语句中包含这两个条件即可:

SELECT a.id, a.name, a.description
FROM   Table1 a
WHERE  (x != 'Y' OR
       (x = 'Y' AND a.name = parameter))

如果X不是Y,则会提取所有记录,否则,如果XY,则还会对a.Name进行过滤