2009/10/7 Pablo Sánchez <[email protected]>:
> Já coloquei, não rolou. :-( Mandei a query mais simples, onde tenho que
> enfiar de algum jeito o order by para que ele respeite essa ordem.
>
> Sistemas legados são um pé no saco, nenhuma idéia atual ou manual ajudam...
>
> Manda o switch, que realmente não tá indo para frente...
>
> 2009/10/7 André Volpato <[email protected]>
>>
>> Pablo Sánchez escreveu:
>> > Não resolveu.
>>
>> Tem que resolver...
>>
>> Usando o exemplo teu:
>> (...)
>>  WHERE l.nu_seq_item_asdf IN (207,206,204,205,288,289,199,198)
>> ORDER BY
>> l.nu_seq_item_asdf = 207 desc
>> ,l.nu_seq_item_asdf = 206 desc
>> ,l.nu_seq_item_asdf = 204 desc
>> ,l.nu_seq_item_asdf = 205 desc
>> ,l.nu_seq_item_asdf = 288 desc
>> ,l.nu_seq_item_asdf = 289 desc
>> ,l.nu_seq_item_asdf = 199 desc
>> ,l.nu_seq_item_asdf = 198 desc
>>
>> Se não rolar, te passo o case.
>>
>> []´s, André Volpato
>>


Uma ideia: Crie uma tabela com seus identificadores na ordem desejada
e acrescente um campo sequencial. No lugar do IN faça um inner join e
ordene pelo campo sequencial auxiliar. Apenas uma sugestão, talvez dê
certo.

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

Responder a