Olá a todos!
Gostaria de saber se alguém sabe se é possível fazer um order by dinâmico, passando uma função que retorna um número:
Mais ou menos assim:
Select a.area, a.nome
from artigo a
where a.cod = 12
group by area
order by funcao(cod);
onde funcao(cod) retorna um código de uma cidade.
pode sim, se quiser pode colocar um select no order by tbm.
t+
Na empresa que trabalho algumas vezes temos esse tipo de situação, faz muito tempo que não faço isso mas pelo que eu me lembre é algo mais ou menos assim:
SELECT campo01, campo02, campo03,
DECODE(:ORDEM, 1, campo01 , 2, campo02 , 3, campo03 ) ORDENACAO
FROM tabela
ORDER BY ORDENACAO
Se o parâmetro informado é 1 a ordenção é pelo campo01, se informado 2 a ordenação é pelo campo02 e assim vai.
Apenas uma observação, lá trabalhamos com Delphi e não Java onde a tratativa de parâmetros para sql é bastante diferente.
Espero ter ajudado.
É…na verdade, eu montei uma função mesmo.
O problema é que ela nao funciona quando o select tem um union…