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
          )


2009/10/7 Charly Frankl <carl...@gmail.com>

> Pablo, também não consegui entender o problema. Você pode enviar um exemplo
> do SQL que você está utilizando?
>
> Att,
>
>
> --
> Charly Frankl
> http://javadevilopers.blogspot.com/
> charlyfra...@gmail.com
> Linux user #391083
>
>
>
>
> 2009/10/7 Pablo Sánchez <phack...@gmail.com>
>
>> 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?
>>
>> --
>> =================================
>> Pablo Santiago Sánchez
>> Análise e Desenvolvimento de Sistemas Web
>> Zend Certified Engineer #ZEND006757
>> phack...@gmail.com
>> (61) 9975-0883
>> http://www.sanchez.eti.br
>> http://www.corephp.com.br
>> "Quidquid latine dictum sit, altum viditur"
>> =================================
>>
>
>
> _______________________________________________
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> 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
phack...@gmail.com
(61) 9975-0883
http://www.sanchez.eti.br
http://www.corephp.com.br
"Quidquid latine dictum sit, altum viditur"
=================================
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a