ORDER BY personalizado

SQL Server

27/11/2006

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

Curtidas 0

Respostas

Psergio.p

Psergio.p

27/11/2006

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


GOSTEI 0
Psergio.p

Psergio.p

27/11/2006

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?


GOSTEI 0
Tinorj

Tinorj

27/11/2006

Havia esquecido do ´bom´ e velho CASE.

Valeu por lembrar...


GOSTEI 0
POSTAR