1

Temat: instrukcja warunkowa "IF" i bloki "{}" wewnątrz funkcji sql??

Witam!

Mam aż takie banalne pytanie że aż wstyd pytać;p

Ale może ktoś odpowie:
Jak wewnątrz funkcji SQL użyć instrukcji "IF" i dajmy na to bloku "{}"?? Coś takiego analogicznego jak w PHP

IF($1 = TRUE)
{
   instrukcja;
}

2

Odp: instrukcja warunkowa "IF" i bloki "{}" wewnątrz funkcji sql??

3

Odp: instrukcja warunkowa "IF" i bloki "{}" wewnątrz funkcji sql??

Chcę zrobić funkcję która dodaje rekord do jednej tabeli, a także w zależność od parametru (bool) także do drugiej.
Np. coś takiego:


dodaj_kogoś(imie,nazwisko,czy_vip)
$$
INSERT INTO ktos(imie,nazwisko) VALUES ($1,$2);

IF($3=TRUE) INSERT INTO vip(id_ktos) (currval(ktos_id_seq);
$$

4

Odp: instrukcja warunkowa "IF" i bloki "{}" wewnątrz funkcji sql??

No to zrób to w funkcji plpgsql a nie sql.

5

Odp: instrukcja warunkowa "IF" i bloki "{}" wewnątrz funkcji sql??

SELECT a,
       CASE WHEN a=1 THEN 'one'
            WHEN a=2 THEN 'two'
            ELSE 'other'
       END
    FROM test;

 a | case
---+-------
 1 | one
 2 | two
 3 | other
Pozdrawiam
Pawel Socha

6

Odp: instrukcja warunkowa "IF" i bloki "{}" wewnątrz funkcji sql??

Pawle, jak samym case'm chcesz zrobić warunkowego inserta, no chyba że chcesz casem wygenerować zapytanie 'INSERT...' które potem ma zostac wykonane. he?