7.4 SQL Server SELECT TOP
SQL Server SELECT TOP
SELECT TOP简介
SELECT TOP
子句允许您限制查询结果集中返回的行数或行百分比
由于表中存储的行的顺序未指定,因此SELECT TOP
语句始终与ORDER BY
子句一起使用。因此,结果集通常返回前N行排序后的数据。
语法:
SELECT TOP (expression) [PERCENT] [WITH TIES] FROM table_name ORDER BY column_name;
其中
expression
TOP
关键字后面是一个表达式,用于指定要返回的行数。如果使用PERCENT
(百分比),则表达式将计算为浮点值,否则将转换为BIGINT
值。
PERCENT
PERCENT
表示查询返回前百分之N
的行,N
就是表达式expression
的值。
WITH TIES
WITH TIES
允许您返回更多与结果集中最后一行匹配的值的行。
例如,如果您想返回最昂贵的产品,可以使用前1。但是,如果两个或多个产品的价格与最昂贵的价格相同,则您将错过结果集中其他最昂贵的商品。
例如,如果您想返回最贵的产品,可以使用 TOP 1
。但是,如果两个或多个产品的价格与最贵的产品相同,那么就会错过结果集中其他最贵的产品。
为了避免这种情况,可以使用TOP 1 WITH TIES
。它不仅包括第一个最贵的产品,还包括第二个,等等。
SELECT TOP示例
使用如下表操作:
1)使用具有固定值的TOP
下面的示例使用一个常量值返回前10名最贵的产品。
SELECT TOP 10 product_name, list_price FROM production.products ORDER BY list_price DESC;
2)使用TOP返回行的百分比
以下示例使用百分比指定结果集中返回的产品数。products
表有321行,因此,321行中的百分之一是小数值(3.21),SQL Server将其四舍五入到下一个整数,在本例中为4。
SELECT TOP 1 PERCENT product_name, list_price FROM production.products ORDER BY list_price DESC;
3)使用TOP WITH TIES来包括与最后一行中的值匹配的行
以下语句返回前三名最贵的产品:
SELECT TOP 3 WITH TIES product_name, list_price FROM production.products ORDER BY list_price DESC;
在本例中,第三贵的产品的标价为6499.99。由于该语句使用TOP WITH TIES
,它返回了三个与第三个价格相同的产品。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· DeepSeek “源神”启动!「GitHub 热点速览」
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器