[firebase-br] Res: Re: Select First

Sandro Souza escovadordebits em gmail.com
Ter Fev 2 14:06:57 -03 2010


Bom dia/tarde Jáber.

Grande Jáber, pelo que eu entendi, o nosso amigo José Luiz desejava obter os
10 últimos registros em ordem crescente.

Dessa forma, ele tentou primeiramente o seguinte código:

SELECT FIRST 10 * FROM OFICINA ORDER BY ID DESC

Como ele ordenou em ordem decrescente, o FIRST retornou os 10 últimos
registros como ele desejava, mas além disso, ele queria reordenar esse
resultado de 10 registros.

Então não se trata de performance, mas sim de funcionalidade mesmo.

Se utilizarmos o seguinte código:

SELECT FIRST 10 * FROM OFICINA ORDER BY ID

Obteremos os 10 primeiros registros, e não os 10 últimos registros, então
teríamos que utilizar a primeira consulta que José Luiz fez, e aproveitando
o resultado dela, reordenar o seu resultado, e foi apenas por isso que eu
coloquei um SELECT externo para reordenar o resultado que ele já conseguiu.

Só para exemplificar, vamos imaginar que na tabela OFICINA existem registros
com os IDs de 1 até 100.

O seguinte código:

SELECT FIRST 10 * FROM OFICINA ORDER BY ID

Retornaria o seguinte:

1
2
3
4
5
6
7
8
9
10

Que são os 10 primeiros IDs.

Invertendo a ordenação do ID, ficaria assim:

SELECT FIRST 10 * FROM OFICINA ORDER BY ID *DESC*

E retornaria o seguinte:

100
99
98
97
96
95
94
93
92
91

Que são os 10 últimos IDs, como desejava José Luiz, mas para reordenarmos
esse último resultado, coloquei um SELECT externo para reordenar
crescentemente pelo ID, ficando assim:

*SELECT * FROM(*SELECT FIRST 10 * FROM OFICINA ORDER BY ID DESC*)ORDER BY ID
*

Que retornaria o seguinte:

91
92
93
94
95
96
97
98
99
100

Que são os 10 últimos IDs, reordenados crescentemente, e acredito que seja
isso o que o nosso amigo José Luiz desejava.

Se eu estiver enganado, por favor queiram me desculpar.

Espero ter ajudado mais que atrapalhado. :D

Em 1 de fevereiro de 2010 21:03, Jáber - Cpd Lekagi <cpd em lekagi.com.br>escreveu:

> Olá José e Sandro...
>
>
>
> Sandro, não seria melhor ele usar apenas "SELECT FIRST 10 * FROM OFICINA
> ORDER BY ID"?
>
> Da forma que você sugeriu tem alguma perda ou ganho de performance, quando
> relacionada a forma descrita acima?
>
>
>
> Desde já agradeço a sua atenção..
>
>
>
> Jáber S. C. Lima
>
>
>
>
>
>
>
> -------Mensagem original-------
>
>
>
> De: Sandro Souza
>
> Data: 01/02/2010 16:55:39
>
> Para: FireBase; Jose Luiz de Medeiros
>
> Assunto: Re: [firebase-br] Select First
>
>
>
> Bom dia/tarde José.
>
>
>
> Grande José, basta aplicarmos um outro ORDER BY no resultado dessa sua
>
> primeira consulta, ou seja:
>
>
>
> *SELECT * FROM(*SELECT FIRST 10 * FROM OFICINA ORDER BY ID DESC*)ORDER BY
> ID
>
>
> *
>
>
>
> Desta forma, o resultado da sua primeira consulta é reordenado, em um
>
> segundo passo, para que você tenha o resultado final desejado.
>
>
>
> Espero ter ajudado mais que atrapalhado. :D
>
>
>
> Em 1 de fevereiro de 2010 16:25, <joseluiz em medeirosinfor.com> escreveu:
>
>
>
> > Colegas..
>
> >
>
> > Tenho essa consulta funcionando 100%:
>
> >
>
> > select first 10 * from oficina
>
> > order by id desc
>
> >
>
> > ela me retorna o seguinte:
>
> >
>
> > 100
>
> > 99
>
> > 98
>
> > 97
>
> > 96
>
> > 95
>
> > 94
>
> > 93
>
> > 92
>
> > 91
>
> > 90
>
> >
>
> > Ela me retorna os 10 ultimos registros cadastrados, so que eu precisava
> que
>
> > me retornasse assim:
>
> >
>
> > 90
>
> > 91
>
> > 92
>
> > 93
>
> > 94
>
> > 95
>
> > 96
>
> > 97
>
> > 98
>
> > 99
>
> > 100
>
> >
>
> > Alguen saberia como fazer?
>
> >
>
> >
>
> > Grato:
>
> > Jose Luiz
>
> >
>
> >
>
> >
>
> > ______________________________________________
>
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>
> > Para saber como gerenciar/excluir seu cadastro na lista, use:
>
> > http://www.firebase.com.br/fb/artigo.php?id=1107
>
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
> >
>
> ______________________________________________
>
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>
> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www
> firebase.com.br/fb/artigo.php?id=1107
>
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista