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 pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral