有人可以指导我如何处理以下事项:
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'
然后按名称过滤;否则带上所有名字......执行上述操作的最佳方法是什么?
答案 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
,则会提取所有记录,否则,如果X
为Y
,则还会对a.Name
进行过滤