Na verdade nao é simples... funciona assim, o result seria o campo CONTADOR e 
NOME_CLIENTE por exemplo
Preciso ordenar pelo nome do cliente, mas aí o contador sai de ordem...

Tinha pensado na solução do Rodrigo que funciona, o unico detalhe é que uso 
essa SQL em um DataSet... 
e faço as alterações diretamente nele então minha tabela principal não pode 
estar numa subquery
Pelo jeito vou ter que acabar fazendo pela aplicação mesmo.

Estava pensando em criar uma função no postgres que me trouxesse esse 
sequencial, 
mas nas minhas tentativas ainda não consegui, ainda sou novo no postgres

A função que criei foi simples:

CREATE OR REPLACE FUNCTION fcontador(bigint)
  RETURNS bigint AS
$BODY$
SELECT row_number() OVER (PARTITION by 0)+$1
$BODY$
  LANGUAGE sql VOLATILE
  COST 100;
ALTER FUNCTION fcontador(bigint)
  OWNER TO postgres;

Mas essa função acaba trazendo um numero unico, eu achava que ele acrescentaria 
1 a cada registro, 
assim estaria independente do result da query


 


From: Matheus de Oliveira 
Sent: Wednesday, May 23, 2012 10:07 PM
To: Marcelo Silva (IG) ; Comunidade PostgreSQL Brasileira 
Subject: Re: [pgbr-geral] Coluna contador separado do Order by, será possivel?


2012/5/23 Marcelo Silva (IG) <[email protected]>

  Pessoal, tenho o seguinte:

  select row_number() OVER (PARTITION by 0) as contador, campo1, campo2 etc
  from tabela1
  where (...)
  order by campo1

  Ele mostra um grid com um sequencial.. beleza

  O detalhe é que ele tira o contador da sequencia conforme a ordenação do 
campo1,
  entendo que deve ser assim mesmo, pois o contador faz parte do result do SQL.

  Mas gostari de manter um sequencial independente do order by, será possivel?

A não ser que não entendi direito o que você quer, basta usar o ORDER BY no 
OVER, igual ao ORDER BY da query:


select row_number() OVER(ORDER BY campo1) as contador, campo1, campo2 etc
from tabela1
where (...)
ORDER BY campo1

Atenciosamente,
--
Matheus de Oliveira

_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a