Pablo Sánchez escreveu:
> Caros.
>
> Tenho um problema para resolver, relacionado à uma lib que gera um SQL
> inválido por ter um order by lá no meio.
>
> A questão é que eu consigo ordenar com 2 consultar, em uma coloco o
> order by, e coloco os ids no where campo in (lista).
>
> A consulta funciona então, mas como o where in não traz na ordem em
> que está em lista, eu precisava saber se vocês conhecem algum jeito de
> forçar que o banco respeite a ordem dos ids listados em where in. Ex:
> (129, 23, 1000, 200) e os itens do resultado vierem nessa ordem.
>
> Isso tudo só porque atualmente colocaram uma lib velha para caramba, e
> a mesma dá erro, na versão nova corrigiram a lib, e quebraram outras
> coisas, mas a questão é que para colocar a nova, eu teria que
> reescrever quase 70% da aplicação, inviável, então o jeito é resolver
> com essa solução nada elegante citada acima.
>
> Alguma idéia de como forçar a ordenação pela lista do where in?
Rapaz, eu já tive esse problema, realmente não vejo uma solução simples.
Se a tua lista de filtro for pequena, você pode alterar a aplicação para
escrever um order by com um filtro para cada entrada.
Mais ou menos assim:
# select login from password where login in ('root','admin','nilva')
order by login='root' desc, login='admin' desc, login='nilva' desc ;
Esse exemplo é de uma base daqui, mas serve no teu caso.
[]´s, André Volpato
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral