2015-01-08 8:32 GMT-02:00 Marcelo Florindo <marceloflori...@gmail.com>:

> CREATE OR REPLACE FUNCTION fordenacao(
>     vfield text,
>     vin text)
>   RETURNS text AS
> $BODY$
> DECLARE
> vorder integer DEFAULT 1;
> vindice integer;
> vcodigo integer[] DEFAULT string_to_array(vin,',')::integer[];
> vordenacao text DEFAULT '';
> BEGIN
> FOR vindice IN array_lower(vcodigo,1)..array_upper(vcodigo,1) LOOP
> vordenacao := vordenacao||' WHEN '||vcodigo[vindice]::text||' THEN
> '||vorder::text;
> vorder := vorder + 1;
> END LOOP;
> vordenacao := '(CASE '||vfield||' '||vordenacao||' END)';
> RETURN vordenacao;
> END;
> $BODY$
>   LANGUAGE
>
> Muito obrigado pessoal!
>

Marcelo,

Como eu já comentei em [1], essa função está incorreta. Ou estou enganado e
alguém quer me ajudar a entender como isso seria uma solução correta?

[1]
http://www.mail-archive.com/pgbr-geral@listas.postgresql.org.br/msg39367.html

Atenciosamente,
-- 
Matheus de Oliveira
Analista de Banco de Dados
Dextra Sistemas - MPS.Br nível F!
www.dextra.com.br/postgres
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a