ORDER BY日期以升序加入,只显示第三个



此外,我想包括表中的其他信息,但只显示第三个信息,按升序进行选择。

这里有一个使用SQL Server的ROW_NUMBER窗口函数和公共表表达式(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 |
+----------+-----------------+------------+

最新更新