Sim, mas como te disse: estou usando uma lib, que faz um parser para fazer a paginação. E a versão da lib que está sendo usada não está aceitando esse order by, gerando um SQL inválido para criar o limit. Se eu tiro o order by, tudo funciona, ou seja, o SQL está ok, mas fica tudo fora de ordem (claro). E fora de ordem não atende...
O que preciso é substituir o order by de alguma forma... Galera, deixa para lá, vou é ver se corrijo o bug da lib (não deveria, mas vou. não deveria porque é a versão 0.11, e já está na 1.1.4! O que deveria poder é fazer o upgrade para a última versão e ser feliz, mas infelizmente não sou eu quem decide, e como eu estou para ir embora desse trampo semana que vem mesmo, acho que vou deixar isso como uma tarefa pendente e focar meus esforços no resto da aplicação). 2009/10/7 Charly Frankl <[email protected]> > Uma pergunta para compreender melhor a tua consulta. O atributo "l.no_item" > seria o individuo pelo qual você precisa ordenar? ou não tem nenhum atributo > dentro desta pesquisa que determine a ordem, mas sim (apenas) a ordem > apresentada no IN ? > > Att, > > > -- > Charly Frankl > http://javadevilopers.blogspot.com/ > [email protected] > Linux user #391083 > > > > 2009/10/7 Pablo Sánchez <[email protected]> > >> O problema é ter que construir uma query que ordene os elementos pelo >> resultado de uma outra query. >> >> >> Estou usando uma lib numa versão em que ao usar order by na coluna >> descritiva do item dá um crash no paginador. >> >> Então eu faço uma primeira query, para pegar os ids na ordem que eu >> preciso, e agora preciso fazer uma segunda query que me retorne os itens >> listados na ordem que recebi na primeira listagem. >> >> O problema é que todas as soluções apresentadas resultaram em uma consulta >> que retorna tal qual está no banco, ou em sintaxe inválida (o order by in, >> por exemplo). >> >> Query de exemplo. Note que no where in os itens estão fora de ordem, eu >> preciso que venha nessa ordem aparentemente aleatória (mas é o resultado do >> order by o nome do item): >> >> SELECT l.nu_seq_item_asdf AS l__nu_seq_item_asdf, >> l.st_possui_recuperacao AS l__st_possui_recuperacao, >> l.nu_ano AS l__nu_ano, l.no_item_abreviado AS l__no_item_abreviado, >> l.no_item AS l__no_item, >> l2.nu_seq_item_asdf_qwer AS l2__nu_seq_item_asdf_qwer, >> l2.vl_aquisicao_qwer AS l2__vl_aquisicao_qwer, >> l2.vl_reforma_qwer AS l2__vl_reforma_qwer, >> l3.nu_seq_item_asdf_municipio AS l3__nu_seq_item_asdf_municipio, >> l3.vl_aquisicao_municipio AS l3__vl_aquisicao_municipio, >> l3.vl_reforma_municipio AS l3__vl_reforma_municipio, >> l4.co_municipio_qwer AS l4__co_municipio_qwer, >> l4.no_municipio AS l4__no_municipio, l4.sg_uf AS l4__sg_uf >> FROM qwerqwer.s_item_asdf l LEFT JOIN qwerqwer.s_item_asdf_qwer l2 >> ON l.nu_seq_item_asdf = l2.nu_seq_item_asdf >> LEFT JOIN qwerqwer.s_item_asdf_municipio l3 >> ON l.nu_seq_item_asdf = l3.nu_seq_item_asdf >> AND l3.co_municipio_qwer = '520870' >> LEFT JOIN qwerqwer.d_municipio l4 >> ON l3.co_municipio_qwer = l4.co_municipio_qwer >> AND l3.co_municipio_qwer = '520870' >> WHERE l.nu_seq_item_asdf IN >> (207, >> 206, >> 204, >> 205, >> 288, >> 289, >> 199, >> 198 >> ) >> >> > > _______________________________________________ > pgbr-geral mailing list > [email protected] > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > > -- ================================= Pablo Santiago Sánchez Análise e Desenvolvimento de Sistemas Web Zend Certified Engineer #ZEND006757 [email protected] (61) 9975-0883 http://www.sanchez.eti.br http://www.corephp.com.br "Quidquid latine dictum sit, altum viditur" =================================
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
