[firebase-br] Duvida em select

Carlos H. Cantu listas em warmboot.com.br
Seg Abr 27 16:16:09 -03 2015


Em SQL, a única forma de se garantir a ordem de um resultset é usando
Order by.

Da forma que você escreveu, o Firebird irá retorar em ordem natural,
ou seja, conforme ele for encontrando os registros, vai retornando...
ou seja, não há como garantir a ordem que os registros irão aparecer.

Vc pode usar de "gambiarras" que façam o que você precisa, por
exemplo:

select prodcod,prodpis,prodcof from tb_pcaprod where prodcod in(
'JNV970122    ','2P0130201A   ','2T2130201D   ','2U0103203
','2T2301368B   '
order by
case prodcod
when 'JNV970122    ' then 1
when '2P0130201A   ' then 2
when '2T2130201D   ' then 3
when '2U0103203    ' then 4
when '2T2301368B   ' then 5
end


[]s
Carlos H. Cantu
www.FireBase.com.br - www.firebirdnews.org
www.warmboot.com.br - blog.firebase.com.br

C> Boa tarde

C> Prezados, utilizo firebird 1.5 e tenho uma dúvida:

C> Como fazer a consulta para o select retornar os registros na mesma
C> ordem que são colocados na clausula where?
C> Exemplo:

C> select prodcod,prodpis,prodcof from tb_pcaprod where prodcod in(
C> 'JNV970122    ','2P0130201A   ','2T2130201D   ','2U0103203    ','2T2301368B   ');

C> PRODCOD                PRODPIS PRODCOF
C> ===================== ====== ======

C> 2P0130201A            S      S
C> 2T2130201D            S      S
C> 2U0103203             S      S
C> 2T2301368B            S      S
C> JNV970122             S      S


C> Desde já agradeço

C> Cleber
C> GTi – DN 4942 – PAMPEIRO





Mais detalhes sobre a lista de discussão lista