Home > Webmaster > Postgresql plpgsql function example IF … THEN … ELSE … END IF

Postgresql plpgsql function example IF … THEN … ELSE … END IF

Postgres Plpgsql function.

Use of :
– DECLARE
– more SELECT queries.
– FOUND to find value for use in other query.
– more IF ELSE END IF ;
– Loop return next “record” End Loop ;
– date_part(‘year’,”Data”)
– LIKE % % ;

-- Function: _getnews_y(character varying, integer)
-- DROP FUNCTION _getnews_y(character varying, integer);

CREATE OR REPLACE FUNCTION _getnews_y(character varying, integer)
  RETURNS SETOF "Newslist" AS
$BODY$

DECLARE
    _record     RECORD ;    
    _year       ALIAS FOR $2;
    _category   ALIAS FOR $1;
    _yeartemp   integer ; 
BEGIN

    IF _category = 'news' THEN     
        -- ritorna tutte le news     
	for _record in 
	SELECT * from "Newslist" 
	WHERE "AgeFlag" = 'New' AND date_part('year',"Data") = _yeartemp 

	ORDER BY "Data" DESC loop	
		return next _record;
	end loop;
	return;
    ELSE
        -- ritorna le news che hanno uno specifico tag = category   
	for _record in 
	SELECT * from "Newslist" 

	WHERE "AgeFlag" = 'New' AND date_part('year',"Data") = _yeartemp
        AND category LIKE '%' || _category || '%'

	ORDER BY "Data" DESC 
        LOOP	
		return next _record;
	END LOOP;
	return;
    END IF ;

END;$BODY$
  LANGUAGE 'plpgsql' VOLATILE SECURITY DEFINER
  COST 100
  ROWS 1000;
ALTER FUNCTION _getnews_y(character varying, integer) OWNER TO postgres;
About these ads
  1. Non c'è ancora nessun commento.
  1. No trackbacks yet.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

Iscriviti

Ricevi al tuo indirizzo email tutti i nuovi post del sito.

%d blogger cliccano Mi Piace per questo: