Puede crear un store procedure que devuelva el número de registros que se quiera, se le puede pasar la sentencia y el número.
Algo similar a esto:
Código SQL
[-]SET TERM ^ ;
CREATE PROCEDURE SelectWithLimit (
p_SelectStatement VARCHAR(1000),
p_RecordCount INTEGER
)
RETURNS (
ResultField1 ,
ResultField2 ,
-- Agrega más campos según tus necesidades
)
AS
DECLARE VARIABLE RowCount INTEGER;
BEGIN
RowCount = 0;
FOR EXECUTE STATEMENT p_SelectStatement INTO :ResultField1, :ResultField2
DO
BEGIN
RowCount = RowCount + 1;
SUSPEND;
IF (RowCount >= p_RecordCount) THEN
EXIT;
END
END^
SET TERM ; ^