Por exemplo:
SELECT CAMPO1, CAMPO2, CAMPO3
FROM TABELA
WHERE CAMPO2 IN (30,40,55,12,3,99,130,25)
Como eu poderia fazer isso?
Obrigado.
SELECT CAMPO1, CAMPO2, CAMPO3
FROM TABELA
WHERE CAMPO2 IN (30,40,55,12,3,99,130,25)
SELECT CAMPO1, CAMPO2, CAMPO3
FROM TABELA
WHERE CAMPO2 IN (30,40,55,12,3,99,130,25)
order by campo2
Daniel, obirgado pela resposta.danielpbarros escreveu:tenta assim e veja se funciona.
ainda pode utilizar desc ou asc para mudar a ordenação da query.SELECT CAMPO1, CAMPO2, CAMPO3 FROM TABELA WHERE CAMPO2 IN (30,40,55,12,3,99,130,25) order by campo2
Os valores são dinâmicos, ora podem ter 2 ou 3 e ora podem ter mais de 50 valores.paulochagas escreveu:Olá jks1903
Esses valores do in são passados dinamicamente ou são fixos e se são fixos é essa a quantidade de valores ou a lista é bem maior?
SELECT CAMPO1, CAMPO2, CAMPO3
FROM TABELA
WHERE CAMPO2 IN (30,40,55,12,3,99,130,25)
order by decode(campo2,30,1
,40,2
,55,3
,12,4
,3,5
,99,6
,130,7
,25,8
,campo2);
Realmente é uma idéia interessante.paulochagas escreveu:Sem pensar muito em performance pensei em algo tipo um decode no order by para os seus valores.
Como estamos falando de uma query montada dinamicamente, na passagem dos valores você poderia fazer um for para montar uma clausula tipo esta:SELECT CAMPO1, CAMPO2, CAMPO3 FROM TABELA WHERE CAMPO2 IN (30,40,55,12,3,99,130,25) order by decode(campo2,30,1 ,40,2 ,55,3 ,12,4 ,3,5 ,99,6 ,130,7 ,25,8 ,campo2);
Tiago, no caso não tenho permissao para criar objetos nessa base, apenas consigo fazer consultas mesmo.tiago_pimenta escreveu:Se os dados são gerados dinamicamente e tem que ser na ordem que você postou lá, eu criaria uma tabela temporária com esses valores gerados que vão para dentro do IN.
Usuários navegando neste fórum: Nenhum usuário registrado e 13 visitantes