Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

edinhorod

Passar parâmetro na consulta

Recommended Posts

Olá, tenho em uma tabela do meu banco a coluna opcoes, que pode ter esses 4 valores: vazio, 1, 12, 123, 13.

Gostaria de fazer uma consulta que me trouxesse todos os registros ordenados assim:

123

13

12

1

vazio

SELECT * FROM tabela ORDER BY opcoes...

Desde já agradeço

Compartilhar este post


Link para o post
Compartilhar em outros sites

A lógica seria do maior para o menor? ORDER BY opcoes DESC (decrescente, ou ASC para crecente).

 

Lembrando que para funcionar corretamente esta coluna deve ser tipo numérico, se fosse alfanumérico a order seria:

13

123

12

1

vazio

Compartilhar este post


Link para o post
Compartilhar em outros sites

SELECT * FROM tabela ORDER BY

(case when valor = 123 then 1

when valor = 13 then 2

...

Compartilhar este post


Link para o post
Compartilhar em outros sites

A lógica seria do maior para o menor? ORDER BY opcoes DESC (decrescente, ou ASC para crecente).

 

Lembrando que para funcionar corretamente esta coluna deve ser tipo numérico, se fosse alfanumérico a order seria:

13

123

12

1

vazio

Na verdade a ordem seria essa que postei e não ASC ou DESC:

123

13

12

1

vazio

SELECT * FROM tabela ORDER BY

(case when valor = 123 then 1

when valor = 13 then 2

...

Valeu por responder. Não entendi muito bem, seria mais ou menos assim:

SELECT * FROM produtos ORDER BY(
case when pro_opcoes = 123 then 1
when pro_opcoes = 13 then 2
)

Compartilhar este post


Link para o post
Compartilhar em outros sites
SELECT * FROM produtos 

ORDER BY(

case when pro_opcoes = 123 then 1

        when pro_opcoes = 13 then 2        
        when pro_opcoes = 12 then 3    
        when pro_opcoes = 1 then 4            
        when trim(pro_opcoes) is null then 5
        else 6 end)
    )

syntax completa

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
SELECT * FROM produtos 

ORDER BY(

case when pro_opcoes = 123 then 1

        when pro_opcoes = 13 then 2        
        when pro_opcoes = 12 then 3    
        when pro_opcoes = 1 then 4            
        when trim(pro_opcoes) is null then 5
        else 6 end)
    )

syntax completa

 

 

Valeu Motta, deu certinho. Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.