利用OVER开窗函数分页

在SQL Server中,利用SQL进行分页的方法也有很多,今天要总结的是SQL Server 2005中引入的OVER开窗口函数,然后利用开窗函数进行分页。

示例代码如下:

-- 设置数据库上下文
USE TSQLFundamentals2008;
GO

-- 使用ROW_NUMBER分页,查找第1-10条数据
SELECT T.custid,T.companyname,T.address,T.city FROM
(
    SELECT ROW_NUMBER() OVER(ORDER BY custid) AS rownum,custid,companyname,address,city FROM Sales.Customers
) AS T
WHERE T.rownum BETWEEN 1 AND 10

查询结果:

输出了第1到第10条记录。

利用OVER开窗函数分页

时间: 2024-10-29 19:10:05

利用OVER开窗函数分页的相关文章

SQL SERVER 开窗函数

引入 这是一道常见的面试题,在实际项目中经常会用到. 需求:求出以产品类别为分组,各个分组里价格最高的产品信息. declare @t table( ProductID int, ProductName varchar(20), ProductType varchar(20), Price int) insert @t select 1,'name1','P1',3 union all select 2,'name2','P1',5 union all select 3,'name3','P2'

SQL Server 2012 - 开窗函数

-- 开窗函数:在结果集的基础上进一步处理(聚合操作) -- Over函数,添加一个字段显示最大年龄 SELECT * , MAX(StuAge) OVER ( ) MaxStuAge FROM dbo.Student; -- Over函数,添加一个字段显示总人数 SELECT * , COUNT(StuID) OVER ( ) StuCount FROM dbo.Student; -- Partition By 分组统计数量 -- 根据性别分组后,统计 SELECT COUNT(*) OVER

sql over开窗函数

1.使用over子句与rows_number()以及聚合函数进行使用,可以进行编号以及各种操作.而且利用over子句的分组效率比group by子句的效率更高. 2.在订单表(order)中统计中,生成这么每一条记录都包含如下信息:“所有订单的总和”.“每一位客户的所有订单的总和”.”每一单的金额“ 关键点:使用了sum() over() 这个开窗函数 如图: 代码如下: select customerID, SUM(totalPrice) over() as AllTotalPrice, SU

sql over开窗函数,

sql over开窗函数, 1.使用over子句与rows_number()以及聚合函数进行使用,可以进行编号以及各种操作.而且利用over子句的分组效率比group by子句的效率更高. 2.在订单表(order)中统计中,生成这么每一条记录都包含如下信息:“所有订单的总和”.“每一位客户的所有订单的总和”.”每一单的金额“ 关键点:使用了sum() over() 这个开窗函数 如图: 代码如下: 3.在订单表(order)中统计中,生成这么每一条记录都包含如下信息:“所有订单的总和(AllT

SQLServer学习笔记<>.基础知识,一些基本命令,单表查询(null top用法,with ties附加属性,over开窗函数),排名函数

Sqlserver基础知识 (1)创建数据库 创建数据库有两种方式,手动创建和编写sql脚本创建,在这里我采用脚本的方式创建一个名称为TSQLFundamentals2008的数据库.脚本如下:   同时往数据库表插入一些数据,用户后续对数据库的sql的练习.在这里有需要的可以下载相应的脚本进行数据库的初始化.我放到百度云上面,请戳 我:http://yun.baidu.com/share/link?shareid=3635107613&uk=2971209779,提供了<Sqlserver

sqlserver的over开窗函数(与排名函数或聚合函数一起使用)

首先初始化表和数据 1 create table t_student( 2   Id INT, 3   Name varchar(100), 4   Score int, 5   ClassId INT 6 ); 7 8 insert into t_student values (1,'A',75,1); 9 insert into t_student values (2,'B',78,2); 10 insert into t_student values (3,'C',74,1); 11 in

SQL开窗函数

开窗函数:在开窗函数出现之前存在着很多用 SQL 语句很难解决的问题,很多都要通过复杂的相关子查询或者存储过程来完成.为了解决这些问题,在 2003 年 ISO SQL 标准加入了开窗函数,开窗函数的使用使得这些经典的难题可以被轻松的解决.目前在 MSSQLServer.Oracle.DB2 等主流数据库中都提供了对开窗函数的支持,不过非常遗憾的是 MYSQL 暂时还未对开窗函数给予支持. 开窗函数简介:与聚合函数一样,开窗函数也是对行集组进行聚合计算,但是它不像普通聚合函数那样每组只返回一个值

sqlserver开窗函数

从 http://jimshu.blog.51cto.com/3171847/1376637/ 转 开窗函数是在 ISO 标准中定义的.SQL Server 提供排名开窗函数和聚合开窗函数. 在开窗函数出现之前存在着很多用 SQL 语句很难解决的问题,很多都要通过复杂的相关子查询或者存储过程来完成.SQL Server 2005 引入了开窗函数,使得这些经典的难题可以被轻松的解决. 窗口是用户指定的一组行.开窗函数计算从窗口派生的结果集中各行的值.开窗函数分别应用于每个分区,并为每个分区重新启动

四舍五入的一些简单写法(利用内置函数,算法2种写法)

?       //内置函数的写法        //网上零售价和折扣价在计算结束需要进行进位,规则如下:         //个位为1,2,3,4进位到5,例如计算后的价格为1201,则价格为1205:         //个位为6,7,8,9进位到0,例如计算后的价格为1209.则价格为1210:         public static string ChangePrice(double price)         {             int changed = 0;