Array
(
)

Dúvida Order by

Wisley Souza
   - 23 set 2011

seguinte, chefia esperta pediu o seguinte,...
tenho um campo la de uma tabela que fica os seguintes valores:
Cadastrado
Em validacao
Nao aprovado
Validado
se eu usar o order by ASC:
Cadastrado
Em validacao
Nao aprovado
Validado
se eu usar o order by DESC:
Validado
Nao aprovado
Em validacao
Cadastrado
mas o milagre que tenho que fazer e ordenar assim:
Nao aprovado
Cadastrado
Em validacao
Validado

alguém tem uma sugestão de como fazer isso????
será que finalmente terei ajuda no fórum?

Emerson
   - 23 set 2011

faça assim:

#Código

select
  (case campo
        when Nao aprovado then 1
        when Cadastrado then 2
        when Em validacao then 3
        when Validado then 4
        else 5
   end) Ordem,
  *
from tabela
order by 1


dessa forma será criado um campo virtual para ordenação. ele será o primeiro campo listado, por isso ordeno pelo elemento 1.

tenho um campo la de uma tabela que fica os seguintes valores:

Cadastrado
Em validacao
Nao aprovado
Validado

se eu usar o order by ASC:

Cadastrado
Em validacao
Nao aprovado
Validado

se eu usar o order by DESC:

Validado
Nao aprovado
Em validacao
Cadastrado

mas o milagre que tenho que fazer e ordenar assim:

Nao aprovado
Cadastrado
Em validacao
Validado

alguém tem uma sugestão de como fazer isso????
será que finalmente terei ajuda no fórum?

Emerson
   - 23 set 2011

esse fórum está cada vez pior....
na resposta anterior tirou os espaços e as aspas.

vou tentar de novo....

select
(case campo
when Nao aprovado then 1
when Cadastrado then 2
when Em validacao then 3
when Validado then 4
else 5
end) Ordem,
*
from tabela
order by 1

Emerson
   - 23 set 2011

bom, creio que você já saiba disso, mas é necessário envolver as situações Nao aprovado, Cadastrado, Em validacao e Validado entre aspas.