Jak porównać wartości w funkcji ?

Jak porównać wartości w funkcji ?
masterO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1025
0

Mam taka funkcje sobie zrobilem:

Kopiuj
 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:

Kopiuj
 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 ?

ŁF
  • Rejestracja: dni
  • Ostatnio: dni
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.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.