ORDER BY personalizado

27/11/2006

0

PessoALL,

Tenho os seguintes dados:

SELECT nome
FROM Animais


[list:bd4256ea08]Cachorro
Pato
Tatu
Égua[/list:u:bd4256ea08]

Mas gostaria que sempre fosse listado com a seguinte ordem:

SELECT nome
FROM Animais
ORDER BY ??????


[list:bd4256ea08]Pato
Tatu
Cachorro
Égua[/list:u:bd4256ea08]

Já encontrei uma solução que indica usar uma tabela auxiliar especificando a ordem, mas gostaria de saber se tem uma solução mais inteligente.

SELECT nome
FROM Animais
INNER JOIN OrdemAnimais OA
  ON OA.nome = Animais.nome
ORDER BY OA.ordem


Abraços,


Tinorj

Tinorj

Responder

Posts

02/12/2006

Psergio.p

Caro amigo, você pode usar CASE para fixar valores no ORDER BY.


Responder

02/12/2006

Psergio.p

Veja o exemplo abaixo:

SELECT Nome FROM Animais
ORDER BY
CASE
WHEN Nome = ´Pato´ THEN CHAR(1)
WHEN Nome = ´Tatu´ THEN CHAR(2)
WHEN Nome = ´Cachorro´ THEN CHAR(3)
WHEN Nome = ´Égua´ THEN CHAR(4)
ELSE Nome END

É isso que você precisa?


Responder

04/12/2006

Tinorj

Havia esquecido do ´bom´ e velho CASE.

Valeu por lembrar...


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar