Jak porównać wartości w funkcji ?

Odpowiedz Nowy wątek
2011-07-07 14:22
0

Mam taka funkcje sobie zrobilem:

 DECLARE
    rdatei ALIAS FOR $1;
    rrow RECORD;  
 
BEGIN
 
FOR rrow IN SELECT id_device FROM devices WHERE no = rdatei LOOP
END LOOP; 
 
RETURN rrow.id_device;
END;

Wywołanie funkcji to:

 SELECT test('7322');

i jak mam no = rdatei to mi wysweitla pozycje 31 (bo mam jeden wpis w bazie)
jak zrobie no = 'rdatei' to wysweitla mi NULL
To co powinienem wpisac ?

Pozostało 580 znaków

2011-07-12 16:45
ŁF
0

a co innego funkcja ma zwracać, skoro rekord nie istnieje? nie ma w tabeli id_device w kolumnie no pola o wartości 'rdatei', to rrow nic nie zawiera, wiec jest zwracany null. rdatei zawiera '7322', 'rdatei' to ciąg o wartości 'rdatei'. to są podstawy sql.
robienie kursora w takim miejscu to pomyłka, kursory są najwolniejszym sposobem wyciągania danych. zrób prosty select i zwróć jego wynik. nie podam Ci przykładu, bo w postgresql ostatnio coś pisałem dwa lata temu.


edytowany 1x, ostatnio: ŁF, 2011-07-12 16:47

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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