在连接两个表时从SQL Server中选择行范围

时间:2018-03-23 05:30:52

标签: sql sql-server

我想在连接两个表时从我的数据库中选择一系列记录。

我加入表格的查询是

SELECT c.customernumber, 
       c.customername, 
       c.duedate, 
       c.chequenumber, 
       c.amount, 
       c.status, 
       n.nextdate, 
       a.tel, 
       a.tel2, 
       a.mobile 
FROM   currentcustemerchequetable c 
       INNER JOIN newtdate n 
               ON c.customernumber = n.customerno 
       INNER JOIN customeraddresstable a 
               ON c.customernumber = a.code 

我需要从上述查询的结果中选择10到25之间的记录。

以上查询返回了千条记录,因此我只需要从中选择记录

2 个答案:

答案 0 :(得分:3)

您可以使用while(rightpos<=last) newarr[newpos++]=arr[rightpos++];

例如在10行之后获得20行;

OFFSET

答案 1 :(得分:0)

您还可以通过row_number()函数

生成序列
with cte as 
(
     select *,
             row_number() over (order by CustomerNumber)  Seq
     from <query>
)

select * from cte
where seq >= 10 and seq <= 25

但是,与offset相比,这是一个优势,你也可以通过departmental明智地获取记录。所以,查询将是

with cte as 
 (
     select *,
                 row_number() over (partition by <col> order by CustomerNumber)  Seq
     from <query>
)

select * from cte
where seq >= 10 and seq <= 25