Pessoal por gentileza uma ajuda com select com order by e case

 

Estou tentando utilizar em uma Function um order by usando case  conforme
abaixo 

Porem não estou conseguindo utilizar o Desc ou Asc.

Observação Se não utiliza-lo  funciona perfeitamente

 

alguém sabe dizer como utilizar desta forma? Alguém recomenda, utiliza
assim?

 

Muito Obrigado pela atenção

 

Jairo de Melo Lázaro

 

CREATE OR REPLACE FUNCTION vrj.pkg_teste

(

--- PARÂMETROS

--- I/O NOME                           TIPO

--- *** ******************************
*************************************************

        refcursor,

     IN  p_ordem                        VARCHAR(1)

)

RETURNS refcursor AS

$BODY$

BEGIN

    OPEN $1 FOR

      SELECT

          pvd.id_pedido_venda,

          pvd.cd_cliente,

          pvd.nr_pedido

      FROM

         vrj.tb_pedido_venda AS pvd

 

      ORDER BY

        CASE UPPER(p_ordem)

          WHEN 'C' THEN (pvd.cd_cliente ASC , pvd.nr_pedido ASC)

          WHEN 'D' THEN (pvd.nr_pedido DESC, pvd.cd_cliente ASC)

        END; 

    RETURN $1;

END;

$BODY$

LANGUAGE 'plpgsql' VOLATILE;

 

SELECT vrj.pkg_teste('dados','D');

FETCH ALL In dados;

 

_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a