вы можете использовать rownum , для этого это обязательно сработает: -
create table ns_table1(
doc varchar(10),
lnty varchar(10));
create table ns_table2(
doc varchar(10),
lnty varchar(10));
insert into ns_table1 values('001','D');
insert into ns_table1 values('001','B');
insert into ns_table1 values('002','B');
insert into ns_table1 values('002','D');
insert into ns_table1 values('003','S');
insert into ns_table1 values('004','D');
insert into ns_table1 values('005','B');
insert into ns_table1 values('006','D');
insert into ns_table2 values('004','B');
insert into ns_table2 values('007','D');
insert into ns_table2 values('007','B');
insert into ns_table2 values('008','D');
select * from ns_table1 where rownum<=8 minus select * from ns_table1 where rownum<=7 union all
select * from ns_table2 where rownum<=4 minus select * from ns_table2 where rownum<=3;