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 ?
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 !