Selecionar somente o primeiro registro encontrado [Resolvido]

Pessoal estou com uma pequena dúvida. Preciso obter somente o primeiro registro de um select em Oracle que retorna varios registros, não queria deixar isso pra camada de código java.

Existe algum select que me faça isso. Alguma coisa do tipo: " Selecione somente o primeiro registro where data > ‘01/01/2011’ "

select First(1) nome from nao_sei_usar_google

[quote=CristianoGDT]Pessoal estou com uma pequena dúvida. Preciso obter somente o primeiro registro de um select que retorna varios registros, não queria deixar isso pra camada de código java.

Existe algum select que me faça isso. Alguma coisa do tipo: " Selecione somente o primeiro registro where data > ‘01/01/2011’ "[/quote]

No select depende muito do banco que você vai usar… você ta usando o hibernate por acaso ou fazendo as query direto ?

Muito engraçada sua piada Jose111 =/
Pra quem sabe usar o google seu select nao funcionou
Erro:

ORA-00904: “FIRST”: identificador inválido

Estou fazendo um Select direto

Tenta usar esse LIMIT 1

mas ordene antes pelo que você quer buscar … se quiser pelo id …

Rodei essa query:

select * from vw_mttf_bilhetes_abertos where DATAIN BETWEEN TO_DATE('01/01/2010','dd/mm/yyyy') AND TO_DATE('01/10/2010','dd/mm/yyyy') ORDER BY DATAIN LIMIT 1;
Gerou esse erro:
ORA-00933: comando SQL não encerrado adequadamente.

Esse LIMIT não é usado só em mysql ?
Lembrando que utilizo Oracle

Que banco você está usando ?

Oracle =/

Olha nunca mexi com oracle eu tentaria assim:


SELECT * 
   FROM teste
 WHERE DATAIN BETWEEN '2011-08-01' AND '2011-08-10'
 ORDER BY DATAIN
  LIMIT 1 ;

As datas nada mas são do que strings, então tentar fazer daquele jeito ali, converte elas para ‘YYYY-MM-DD’ e pode fazer o between

cara… se o limit não funciona, tenta o top 1…

select top 1 bla bla bla

(to sem tempo agora, mas acho que funciona)

Não vi que era Oracle haha’ mas usando o Google da para ver que X da questao é o rownum no where:

where rownum =1

Resolvido…

Como minha praia não é banco de dados agente “apanha” de vez enquando com coisas relativamente simples =D

select * from vw_mttf_bilhetes_abertos where DATAIN BETWEEN TO_DATE('13/08/2010','dd/mm/yyyy') AND TO_DATE('01/10/2010','dd/mm/yyyy') and rownum <=1;

flw !