SQL查询寻呼接收记录

SQL query for paging received records

我想编写一个查询,从另一个 table 接收有关客户及其订单的信息,并以这种方式显示它们:

Customer 1
 Customer 1 Order 1
 Customer 1 Order 2
Customer 2
 Order 1 Customer 2
Customer 3
 Order 1 Customer 3
....

而且我想按客户进行寻呼。例如 - 如果我定义每页项目 = 10,我想显示 10 个客户,无论他们有多少订单。

我准备了这个查询,但我认为它不会正常工作,我不知道如何解决这个问题..

var result = db.Page<Customer>(pageNumber, 10, "SELECT c.*, o.* FROM Customers c JOIN Orders o 
ON o.Id = c.Id");

您可以使用 dense_rank() 并对其进行过滤:

SELECT c.*, o.*, DENSE_RANK() OVER (ORDER BY c.id) as seqnum
FROM Customers c JOIN 
     Orders o 
     ON o.Customer_Id = c.Id;

您需要使用 WHERE 进行过滤,而不是 LIMITFETCH 或其他。