edinhorod 0 Denunciar post Postado Março 25, 2015 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
lokaodomau 61 Denunciar post Postado Março 25, 2015 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
Motta 645 Denunciar post Postado Março 25, 2015 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
edinhorod 0 Denunciar post Postado Março 25, 2015 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
Motta 645 Denunciar post Postado Março 25, 2015 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
edinhorod 0 Denunciar post Postado Março 25, 2015 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
giesta 29 Denunciar post Postado Março 25, 2015 select * from tabela order by opcoes+0 desc Compartilhar este post Link para o post Compartilhar em outros sites