Jak porównać wartości w funkcji ?

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 ?

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.

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