SQL - order by

Oracle

05/11/2012

bom dia;

select * from procedimento
where pro_codigo in (
40901300,
40101010,
40901130,
10101136,
...
...
40901122,
40201120)

Como posso fazer para trazer o resultado desta pesquisa, na mesma ordem que ela foi feita:

40901300, DESCRIÇÃO, PREÇO, ETC...
40101010, DESCRIÇÃO, PREÇO, ETC...

Não sei se fui claro quanto a meu questionamento..


Sérgio

Sérgio

Curtidas 0

Respostas

Eduardo Oliveira

Eduardo Oliveira

05/11/2012

ORDER BY pro_codigo


Já tentou isso ?
GOSTEI 0
Sérgio

Sérgio

05/11/2012

sim.. mas por padrão esse comando usa a opção ASC, trazendo a pesquisa em ordem crescente.
E o que quero é exatamente a mesma ordem usada na pesquisa. obrigado.
GOSTEI 0
Deivison Melo

Deivison Melo

05/11/2012

o campo: "pro_codigo" é VARCHAR2 ou NUMBER?, caso seja number não tem como termos o resultado desejado em nenhuma das ordenações...

Caso seja um number, recomendo o uso da função: to_char(pro_codigo) onde é feito um "cast" na informação e com isso a possibilidade de trabalhar com o number como se fosse um varchar2...

Qualquer dúvida por favor me comunicar!!
GOSTEI 0
Sérgio

Sérgio

05/11/2012

select * from procedimento
where to_char(pro_codigo)

ele traz ordenado crescente...

não funcionou
GOSTEI 0
Tiago

Tiago

05/11/2012

Sérgio, você gostaria de agrupar as informações? se for precisa utilizar a cláusula GROUP BY... caso você queria apenas ordenar utilize a clasula order by asc(crescente) ou desc(decrescente)...

Espero ter ajudado
GOSTEI 0
Claudia Nogueira

Claudia Nogueira

05/11/2012

Estava pensando aqui em como ter esse retorno, da forma que você quer de um jeito simples, porém é complicado mesmo que as opções do IN sejam fixas.
Se forem fixas, pra conseguir isso ficaria mais ou menos assim:
SELECT (CASE p. pro_codigo
        WHEN 40901300 THEN 1
        WHEN 40101010 THEN 2
        WHEN 40901130 THEN 3
        WHEN 10101136 THEN 4 
        WHEN 40901122 THEN 5
        WHEN 40201120 THEN 6 END) ordem, p.*
  FROM procedimento p
where p.pro_codigo in (
40901300,
40101010,
40901130,
10101136,
40901122,
40201120)
ORDER BY 1
GOSTEI 0
Deivison Melo

Deivison Melo

05/11/2012

Por favor, detalhe de forma minuciosa como vc precisa da consulta que elaborarei e postarei a solução aqui...

PS. Inclusive preciso que tb poste a estrutura de sua tabela (campos e seus respectivos tipos de dados).
GOSTEI 0
Sérgio

Sérgio

05/11/2012

Deu certo Claudia, parabéns e muito obrigado !!
GOSTEI 0
Eliézio Mesquita

Eliézio Mesquita

05/11/2012

Bom dia Sérgio,

Tem como você colocar eu post com Concluído?

Obrigado e abraço!
GOSTEI 0
Sérgio

Sérgio

05/11/2012

Como faço para marcar o incidente como encerrado?
GOSTEI 0
Eliézio Mesquita

Eliézio Mesquita

05/11/2012

Como faço para marcar o incidente como encerrado?


No inicio do seu post você vai achar a opção
[Modificar status do Chamado] aqui você pode mudar o status para concluído.

Obrigado
GOSTEI 0
POSTAR