>
> Bom dia, Rafael. Obrigado pela sugestão.
> Estava mesmo com pl/sql em mente, mas uma solução mais limpa (como você
> disse) seria melhor.
>

Seria algo tipo isso (não ficou nada elegante, ao meu ver, mas foi o que
consegui fazer rapidamente):

with associados(ordem, cod_associado, seq_fam, nome) as
(
select
case
when seq_fam = 0 then
rank() over (order by nome)
else
null
end as ordem
, cod_associado
, seq_fam
, nome
from
associados
order by
cod_associado
, seq_fam
, nome
)
select
case
when ordem is null then
(select a.ordem from associados a where a.cod_associado =
ascd.cod_associado and a.seq_fam = 0 and a.ordem is not null)
else
ordem
end as ordem
, cod_associado
, seq_fam
, nome
from
associados ascd
order by
1
, cod_associado
, seq_fam

Fica de ideia caso queiras otimizar e realizar de uma melhor forma.

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

Responder a