首页 > 解决方案 > ORDER BY 日期以升序加入,仅显示第三个

问题描述

另外,我想包括表中的其他信息,但只显示第三个,按升序连接顺序选择。

标签: sql-server

解决方案


ROW_NUMBER这是使用 SQL Server 的窗口函数和公用表表达式 (CTE)的非常简单的方法。如果您不熟悉为 SQL Server 编写 T-SQL,这是两个非常有用的工具。

CTE 收集一个可以查询的基础结果集。在这种情况下,我们只请求第三条记录——通过使用 ROW_NUMBER 和 ORDERing BY OrderDate(默认升序)来实现。

;WITH Orders AS ( 
    SELECT
        ROW_NUMBER() OVER ( ORDER BY OrderDate ) AS OrderSeq,
        Customer,
        OrderDate
    FROM ( VALUES
        ( 'Fred Flintstone', '01/01/2020' ),
        ( 'Fred Flintstone', '02/01/2020' ),
        ( 'Fred Flintstone', '03/01/2020' ),
        ( 'Fred Flintstone', '04/01/2020' ),
        ( 'Fred Flintstone', '05/01/2020' ),
        ( 'Fred Flintstone', '06/01/2020' )
    ) o ( Customer, OrderDate )
)
SELECT
    *
FROM Orders WHERE OrderSeq = 3;

退货

+----------+-----------------+------------+
| OrderSeq |    Customer     | OrderDate  |
+----------+-----------------+------------+
|        3 | Fred Flintstone | 03/01/2020 |
+----------+-----------------+------------+

推荐阅读