Re: [Postgresql-it] Finestra di valori

  • From: Matteo Beccati <php@xxxxxxxxxxx>
  • To: postgresql-it@xxxxxxxxxxxxxxxxx
  • Date: Fri, 11 Feb 2005 11:59:59 +0100

Ciao,

Ok ma non conoscendo i valori 3 e 5?
Nel senso che ho una tabella con dei codici alfanumerici ordinati e conosco il codice che voglio cercare ma non quelli prima o quelli dopo ( chiaramente la query ritorna un set ordinato per codice), io vorrei semplicemente dare un offset all'indietro

CREATE OR REPLACE FUNCTION finestra (int4) RETURNS setof tabella AS '
DECLARE
v1 int4;
v2 intt4;
r record;
BEGIN
SELECT INTO v1 campo FROM tabella WHERE id < $1 ORDER BY campo DESC LIMIT 1;

  IF NOT FOUND THEN
    v1 := $1;
  END IF;

  SELECT INTO v2 campo FROM tabella WHERE id > $1 ORDER BY campo LIMIT 1;

  IF NOT FOUND THEN
    v2 := $1;
  END IF;

  FOR r IN SELECT * FROM tabella WHERE campo BETWEEN v1 AND v2 LOOP
    RETURN NEXT r;
  END IF;

  RETURN;
END;
' LANGUAGE 'plpgsql';


SELECT finestra(4);


O qualcosa di simile :)


Ciao ciao
--
Matteo Beccati
http://phpadsnew.com
http://phppgads.com


Other related posts: