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,它返回了三个与第三个价格相同的产品。

posted @   平元兄  阅读(457)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· DeepSeek “源神”启动!「GitHub 热点速览」
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
点击右上角即可分享
微信分享提示