Selecionar somente o primeiro registro encontrado [Resolvido]

12 respostas
C

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’ "

12 Respostas

Jose111
select First(1) nome from nao_sei_usar_google
rodrigocolasso

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’ "

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

C

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

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

C

Estou fazendo um Select direto

rodrigocolasso

Tenta usar esse LIMIT 1

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

C

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

rodrigocolasso

Que banco você está usando ?

C

Oracle =/

rodrigocolasso

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

leoramos

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)

Jose111

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
C

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 !

Criado 4 de agosto de 2011
Ultima resposta 4 de ago. de 2011
Respostas 12
Participantes 4