Ir para conteúdo

POWERED BY:

Arquivado

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

Tiago da Silva

Order by e Rownum

Recommended Posts

Order by dentro de subselect não funciona?

 

Select * from valor_inflacao where cd_inflacao in

(Select cd_inflacao from valor_inflacao where tipo = 'X' order by data_registro) ?????

 

Na verdade eu precisaria pegar o registro de data_registro mais nova em que o tipo seja 'X'.

 

Se eu fizer:

Select * from valor_inflacao where tipo = 'X' and rownum = 1

order by data desc

 

Isso não funciona pois é como se fosse ignorado o order by, então ele pega o primeiro registro e não o primeiro do order by desc.

 

 

Alguém tem uma solução? No SQL Server colcando TOP 1 funciona perfeitamente, agora substituindo pelo rownum não.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Max

 

Select * 
from valor_inflacao a
where tipo = 'X' 
and	data_registro = (Select max(data_registro) 
								  from valor_inflacao b
								  where a.tipo = b.tipo)

Compartilhar este post


Link para o post
Compartilhar em outros sites

select * from (

Select * from valor_inflacao where tipo = 'X'

order by data desc ) a

where rownum =1

 

 

Ai ele ordena primeiro e você pega a primeira linha depois.....

 

 

porem .... tambem eh possivel faz com MAX como o Motta mostrou acima, o 'problema' eh q com o Max() você PODE vir a ter mais de um resultado quando ocorram duas coisas empatadas com valor maximo e você pode querer soh um resultado

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.