Seleção de Apenas 10 linhas em um select

07/01/2016

9

Boa tarde,
Tenho o seguinte select
SELECT NR_CAUSE,
               SUM(TOTAL) TEMPO_TOTAL
FROM STOP_DATA
WHERE DTHR_INI>= :pdtIni AND DTHR_FIM <= :pdtFim 
GROUP BY NR_CAUSE;


Mas este select me retorna muitas linhas, gostaria que ele me retornasse apenas as 10 primeiras linhas.

Desde já agradeço
Fabricio
Responder

Post mais votado

09/01/2016

amigo se vc estiver usando firedac fica moleza...

USE AS DIRETIVAS DE COMPILAÇÃO, É ASSIM QUE FAÇO COM FIREBIRD E POSTGRES
ficaria mais ou menos assim no FDQuery.

{IF FIREBIRD}

SELECT FIRST 10 RESTANTE DA INTRUÇÃO DESEJADA

{IF MSSQL}

SELECT TOP 10 COLUNA (s)
FROM TABELA

{IF ORACLE}

SELECT COLUNA(s)
FROM TABELA
WHERE ROWNUM <= 10;


{IF MYSQL}
SELECT COLUNA(s)
FROM TABELA
LIMIT 10;
Responder

Mais Posts

07/01/2016

Isaac Jose

boa tarde.. no sql é o top 10


SELECT TOP 10 NR_CAUSE,
SUM(TOTAL) TEMPO_TOTAL
FROM STOP_DATA
WHERE DTHR_INI>= :pdtIni AND DTHR_FIM <= :pdtFim
GROUP BY NR_CAUSE;
Responder

07/01/2016

Claudio Lopes

no mysql é utilizado o limit() no frinal da query, qual banco vc está utilizando?
Responder

07/01/2016

Raylan Zibel

select first(10) * from tabela
Responder
Este select tem que funcionar p/ Firebird, SQL Server e Oracle
Responder

08/01/2016

Raylan Zibel

É diferente em cada linguagem. Voce tem q prever isso antes de montar a consulta.
Responder

08/01/2016

Raylan Zibel

Se vc estiver usando clientdataset vc pode setar a quantidade 10 na propriedade PacketRecords.
A consulta vai trazer tudo, mas exibir de 10 em 10.
Responder
Usei o Select First(10) e funcionou....no caso estou utilizando no delphi os componentes query nativos (TQuery do Delphi).
Muito obrigado.
Responder