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

Responder a