此外,我想包括表中的其他信息,但只显示第三个信息,按升序进行选择。
这里有一个使用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 |
+----------+-----------------+------------+