PostgreSQL - IF ELSE

0

Cześć,

Chcę stworzyć zapytanie z warunkiem. Proszę Was o pomoc - zapytanie jeśli chodzi o logikę powinno wyglądać tak (jeżeli warunek jest spełniony wykonuję jedno zapytanie, jeśli nie to drugie).

IF x IS NOT NULL 
    THEN
             SELECT ...
     ELSE
             SELECT
END

Błąd: ERROR: syntax error at or near "IF"
LINE 1: IF 'abc' IS NOT NULL THEN

1

W zwykłym zapytaniu nie da rady zrobić. Np. w procedurze, albo funkcji da. Ale napisz może jak bardzo się różnią te zapytania, bo być może źle kombinujesz...

0

Zapytania różnią się warunkiem końcowym:
pierwsze:

... WHERE A = B

drugie:

... WHERE A != B

2

a spróbuj tak:

SELECT * FROM ... WHERE CASE WHEN x IS NOT NULL THEN A = B ELSE A != B END;
1

Można też tak:

SELECT … FROM … WHERE (x IS NOT NULL AND A = B) OR (x IS NULL AND A != B);

1 użytkowników online, w tym zalogowanych: 0, gości: 1