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

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

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

示例一:(基本用法)

 

SQL Server 2005 T-SQL学习笔记:TOP的增强 -- Traditionally usage
SQL Server 2005 T-SQL学习笔记:TOP的增强
use  AdventureWorks
SQL Server 2005 T-SQL学习笔记:TOP的增强
go
SQL Server 2005 T-SQL学习笔记:TOP的增强
select   top   10   *   from  Person.Contact
SQL Server 2005 T-SQL学习笔记:TOP的增强


 

示例二:(使用表达式)

 

SQL Server 2005 T-SQL学习笔记:TOP的增强 -- Using expression
SQL Server 2005 T-SQL学习笔记:TOP的增强
select   top  ( datepart (mm, getdate ()))   *   from  Person.Contact
SQL Server 2005 T-SQL学习笔记:TOP的增强
declare   @top   as   smallint ;
SQL Server 2005 T-SQL学习笔记:TOP的增强
set   @top   =   10
SQL Server 2005 T-SQL学习笔记:TOP的增强
select   top  ( @top )   *   from  Person.Contac

 

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

示例三:(使用子查询)

 

SQL Server 2005 T-SQL学习笔记:TOP的增强 -- Using sub query
SQL Server 2005 T-SQL学习笔记:TOP的增强
SELECT   TOP  ( SELECT   COUNT ( * FROM  Sales.SalesPerson)
SQL Server 2005 T-SQL学习笔记:TOP的增强SalesOrderID, RevisionNumber, OrderDate
SQL Server 2005 T-SQL学习笔记:TOP的增强
FROM  Sales.SalesOrderHeader
SQL Server 2005 T-SQL学习笔记:TOP的增强
ORDER   BY  SalesOrderID


 

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

 

SQL Server 2005 T-SQL学习笔记:TOP的增强 -- Using PERCENT----
SQL Server 2005 T-SQL学习笔记:TOP的增强
declare   @Top   as   float @All   as   bigint ;
SQL Server 2005 T-SQL学习笔记:TOP的增强
set   @Top   =   10 ;
SQL Server 2005 T-SQL学习笔记:TOP的增强
select   top  ( @Top PERCENT   *   from  Person.Contact;  -- return 1998 rows
SQL Server 2005 T-SQL学习笔记:TOP的增强
select   @all   =    count ( 1 from  Person.Contact;
SQL Server 2005 T-SQL学习笔记:TOP的增强
print   @all -- total: 19972 rows

 

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

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

 

SQL Server 2005 T-SQL学习笔记:TOP的增强 -- Using TOP in delete
SQL Server 2005 T-SQL学习笔记:TOP的增强
delete   top ( 1 ) p
SQL Server 2005 T-SQL学习笔记:TOP的增强
from  Person.Contact  as  p 
SQL Server 2005 T-SQL学习笔记:TOP的增强
-- order by Title --这句有错误, 好像不支持
SQL Server 2005 T-SQL学习笔记:TOP的增强

你可能感兴趣的:(sql server 2005)