sql-server - ORDER BY 日期以升序加入,仅显示第三个
问题描述
另外,我想包括表中的其他信息,但只显示第三个,按升序连接顺序选择。
解决方案
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 |
+----------+-----------------+------------+
推荐阅读
- swift - 摆脱标签视图中的导航栏
- macos - Selenium Chrome 驱动程序在 macOS 上崩溃
- joomla3.0 - 如何将子表单的(Joomla)管理布局从表格模式更改为 div 模式?
- django - 写入文件,然后通过 api 发送
- android - Android以编程方式执行shell命令(非root)
- vb.net - 在单元格值更改时重新排序 Datagridview
- html - MVC 站点“缓存”问题
- c++ - 计算浮点余数的最佳方法
- java - 如何为 BinaryTree 编写 left() 和 right() 方法
班级 - javascript - 从 HTML 数据运行 Javascript