SQL Server 2005 T-SQL学习笔记:TOP的增强

本文详细介绍了 SQL Server 中的 TOP 语句及其多种用法,包括如何利用 TOP 返回特定数量或比例的数据记录,以及如何在 UPDATE 和 DELETE 操作中应用 TOP 限制受影响的行数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概念:用来处理前几条数据,在2005中已经有了很大的扩展,可以删除,更新前几条数据.也可以返回指定百分比的数据

用处:在2000中,经常用来现实分页算法.听说SQL Server对Top语句,有很好的优化.

示例一:(基本用法)

 

--Traditionally usage
use AdventureWorks
go
select top 10 * from Person.Contact

 

示例二:(使用表达式)

 

--Using expression
select top (datepart(mm,getdate()))  * from Person.Contact
declare @top as smallint;
set @top = 10
select top (@top)  * from Person.Contac

 

注意:表达式要用()号包起来

示例三:(使用子查询)

 

--Using sub query
SELECT TOP (SELECT COUNT(*) FROM Sales.SalesPerson)
SalesOrderID, RevisionNumber, OrderDate
FROM Sales.SalesOrderHeader
ORDER BY SalesOrderID

 

示例四:(使用百分比:PERCENT)

 

--Using PERCENT----
declare @Top as float, @All as bigint;
set @Top = 10;
select top (@Top) PERCENT * from Person.Contact; --return 1998 rows
select @all =  count(1) from Person.Contact;
print @all; --total: 19972 rows

 

注意表达式必须是float类型的

 

示例四:(update, delete中使用top)

 

--Using TOP in delete
delete top(1) p
from Person.Contact as p 
--order by Title --这句有错误, 好像不支持
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值