Sql Server系列:排序函数
在SQL Server中有4个排序函数:ROW_NUMBER()、RANK()、DENSE_RANK()及NTILE()函数。
1. ROW_NUMBER()函数
ROW_NUMBER()函数为每条记录添加递增的顺序数值序号,即使存在相同的值也递增序号。
示例:
SELECT ROW_NUMBER() OVER (ORDER BY [CategoryID] DESC) AS ROWID, [CategoryID], [CategoryName]
FROM [dbo].[Category]
WITH SortedProduct AS
(
SELECT ROW_NUMBER() OVER (ORDER BY [CategoryID] DESC) AS [ROW_NUMBER], [CategoryID], [CategoryName]
FROM [dbo].[Category]
)
SELECT * FROM SortedProduct
WHERE [ROW_NUMBER] BETWEEN 2 AND 5
2. RANK()函数
返回结果集的分区内每行的排名,如果两个或多个行与一个排名关联,则每个关联行将得到相同的排名。
示例:
SELECT RANK() OVER (ORDER BY [UnitsInStock] DESC) AS [ROW_NUMBER],[ProductID],[ProductName],[UnitsInStock]
FROM [dbo].[Product]
对于相同的[UnitsInStock],查询返回相同的排名。

3. DENSE_RANK()函数
DENSE_RANK()函数返回结果集分区中行的排名,在排名中没有任何间断。 行的排名等于所讨论行之前的所有排名数加一。
示例:
SELECT DENSE_RANK() OVER (ORDER BY [UnitsInStock] DESC) AS [ROW_NUMBER],[ProductID],[ProductName],[UnitsInStock]
FROM [dbo].[Product]

4. NTILE()函数
将有序分区中的行分发到指定数目的组中。 各个组有编号,编号从1开始。 对于每一个行,NTILE 将返回此行所属的组的编号。
语法:
NTILE (integer_expression) OVER ( [ <partition_by_clause> ] < order_by_clause > )
示例:
SELECT NTILE(5) OVER (ORDER BY [UnitsInStock] DESC) AS [ROW_NUMBER],[ProductID],[ProductName],[UnitsInStock]
FROM [dbo].[Product]
Sql Server系列:排序函数的更多相关文章
- sql server中常用方法函数
SQL SERVER常用函数 1.DATEADD在向指定日期加上一段时间的基础上,返回新的 datetime 值. (1)语法: DATEADD ( datepart , number, date ) ...
- SQL Server 内置函数、临时对象、流程控制
SQL Server 内置函数 日期时间函数 --返回当前系统日期时间 select getdate() as [datetime],sysdatetime() as [datetime2] getd ...
- SQL Server数据库ROW_NUMBER()函数使用详解
SQL Server数据库ROW_NUMBER()函数使用详解 摘自:http://database.51cto.com/art/201108/283399.htm SQL Server数据库ROW_ ...
- 10、SQL Server 内置函数、临时对象、流程控制
SQL Server 内置函数 日期时间函数 --返回当前系统日期时间 select getdate() as [datetime],sysdatetime() as [datetime2] getd ...
- SQL Server更改排序规则的实现过程
摘自: http://www.2cto.com/database/201112/115138.html 以下的文章主要向大家描述的是SQL Server更改排序规则的实现过程,以及在实现其实际操作过程 ...
- SQL Server中排名函数row_number,rank,dense_rank,ntile详解
SQL Server中排名函数row_number,rank,dense_rank,ntile详解 从SQL SERVER2005开始,SQL SERVER新增了四个排名函数,分别如下:1.row_n ...
- SQL Server 系列文章快速导航(SWF版)
一.前言 在博客园写博客不自不觉已经有5个年头了,一开始只是为了记录工作中遇到的问题和解决办法,后来写的文章不自不觉的侧重在SQL Server方面的技术文章,在2014年1月终于鼓起勇气申请了微软S ...
- SQL Server:字符串函数
以下所有例子均Studnet表为例: 1. len():计算字符串长度 len()用来计算字符串的长度,每个中文汉字或英文字母都为一个长度 select sname, len(sname) from ...
- SQL Server 分隔字符串函数实现
在SQL Server中有时候也会遇到字符串进行分隔的需求.平时工作中常常遇到这样的需求,例如:人员数据表和人员爱好数据表,一条人员记录可以多多人员爱好记录,而往往人员和人员爱好在界面展示层要一并提交 ...
- SQL Server UDF用户自定义函数
UDF的定义 和存储过程很相似,用户自定义函数也是一组有序的T-SQL语句,UDF被预先优化和编译并且尅作为一个单元爱进行调用.UDF和存储过程的主要区别在于返回结果的方式. 使用UDF时可传入参数, ...
随机推荐
- maven构建简单的web项目
把jdk给换掉 项目修改好了以后写个页面测试一下,结果正常 下面应该添加依赖让web项目一步步丰满起来. 0-添加依赖 1-建一个servlet 2-web.xml中添加servlet声明 3-重新运 ...
- 【转】Oracle索引的类型
数据库的应用类型分为 OLTP(OnLine Transaction Processing ,联机事务处理):OLTP是传统关系型数据库的主要应用,其主要面向基本的.日常的事务处理,例如银行交易. O ...
- 图论 - Travel
Travel The country frog lives in has nn towns which are conveniently numbered by 1,2,…,n. Among n(n− ...
- tornado学习笔记19 Tornado框架分析
19.1 Http服务器请求处理流程图 (1) 调用HTTPServer的bind方法,绑定Socket的监听端口号: (2) 调用HTTPServer的listen方法,初始化一个listen so ...
- asp.net,cookie,写cookie,取cookie
Cookie是一段文本信息,在客户端存储 Cookie 是 ASP.NET 的会话状态将请求与会话关联的方法之一.Cookie 也可以直接用于在请求之间保持数据,但数据随后将存储在客户端并随每个请求一 ...
- [WPF] 我的WPF自学日记2,自定义入口
在winform中入口文件就是Program.cs,而在WPF中看不到,因为它是自动生成的,可以说隐藏了,我们可以自定义一个入口文件,然后修改项目属性中的启动对象为我们自定义的入口文件. 首先新建入口 ...
- 反射 Class类和Class实例
- Java 用程序给出随便大小的10 个数,序号为1-10,按从小到大顺序输出,并输出相应的序号?
import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; import java.uti ...
- hadoop生态圈介绍
原文地址:大数据技术Hadoop入门理论系列之一----hadoop生态圈介绍 1. hadoop 生态概况 Hadoop是一个由Apache基金会所开发的分布式系统基础架构. 用户可以在不了解分 ...
- bzoj3380+3381+3382+3383 Usaco2004 Open
四道比较水的题 T1:SPFA+状压 #include<stdio.h> #include<string.h> #include<algorithm> #inclu ...