根据不同的列值对行进行排序

Order rows based on different column value

我在 table 中有以下格式的数据。

CustomerID | CustomerName | DisplayOrder | isActive
1 | Test | 1 | 1 
1 | Test | 2 | 1 
2 | Test2 | 1 | 1 
1 | Test | 3 | 1 
2 | Test2 | 2 | 1

以上 table 需要根据每个客户的 displayorder 列进行排序。每个客户都有自己的展示顺序。在这里我不能直接使用 OrderBy 子句,因为 Display order 将按客户重复。

预期输出为:

CustomerID | CustomerName | DisplayOrder | isActive
1 | Test | 1 | 1 
1 | Test | 2 | 1 
1 | Test | 3 | 1 
2 | Test2 | 1 | 1 
2 | Test2 | 2 | 1  

请帮助 order by 子句以根据客户排序。

SELECT *
FROM t
ORDER BY CustomerID,
         DisplayOrder;

您只需要按 customerId 排序,然后显示订单(如果 customer id 相同),例如:

SELECT * 
FROM mytable 
ORDER BY customerId, displayOrder;

Fiddle 相同。