2017-01-16 3 views
1

Может кто-то наставит меня о том, как подойти к следующим образом:Oracle PL/SQL: Условный Где Статья

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' Затем фильтровать по названию; Else приносят все имена ... какой был бы лучший способ для выполнения вышеизложенного?

ответ

2

Вам просто нужно включить оба условия в 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.

+0

Это было. Благодаря! –