SQL2005新增了几个结果集行号、排名、分组等函数,给我们带来了很大的方便。
1. ROW_NUMBER函数
返回结果集分区内行的序列号。SQL表是基于集合的,没有像DBF,ACCESS这样的记录行的概念。ROW_NUMBER函数返回行号不是数据表的物理行号,而是结果集分区内行的序列号。
如:SELECT ROW_NUMBER() OVER (ORDER BY ProdCode) AS rownum, * FROM t_Product
返回基于列ProdCode排序集合的行号。利用ROW_NUMBER 及 OVER排序子句,我们可以实现数据分页功能,而以前要比较复杂的代码才能实现。
<!---->SELECT TOP(10) prodcode,name FROM ( SELECT prodcode,name, ROW_NUMBER() OVER (ORDER BY prodcode) AS ROW_Number FROM t_product) as T WHERE Row_Number > ((5 - 1) * 10)
这条语句显示产品表的第5页 ,每页10行记录。
2. 分组 NTITLE
NTITLE函数将指定数据集划分成N个组,分组时由Orderby指定排序列。如将产品表划分成10个组:
<!---->Select prodcode,name,ProdTypeCode,NTile(10) OVER(ORDER BY ProdTypeCode) AS NTile From t_product
3. RANK、DENSE_RANK排名函数
排名函数很容易实现诸如销售排名报表这样的功能,同ROW_NUMBER、NTITLE一样需要指定OVER 排名窗口函数,确定行集的分区和排序。如实现按业务员的销量排名表。
<!---->Select prodid,Sum(quantity) as Total,Rank() OVER(ORDER BY Sum(quantity) desc) AS Rank From secontdetl Group by prodid
运行结果如下:
DENSE_RANK与RANK不同的是返回指定元组在指定集中的排名(排名从 1 开始),但排名号不间断。即如果有2个并列第1名,那么RANK函数第3行记录将是排名3,而DENSE_RANK是2.
分享到:
相关推荐
sql2005,2008,2012新增函数方法列举:只列举了名称,可以到网络自己查询相关内容
在SQL Server 2012中,引入了一个新的字符串函数——CONCAT,它的主要功能是方便地连接多个字符串。在CONCAT函数出现之前,我们通常使用 "+" 运算符来连接字符串,但这种方法存在一个问题,即如果其中任何一个字符串...
SQL自定义函数是SQL Server 2000中新增的数据库对象,它允许用户根据需要自定义函数,以满足特定的业务需求。与系统内置的函数不同,自定义函数可以根据用户的需求进行定制,满足特定的业务需求。 SQL自定义函数的...
2. **函数和存储过程兼容性:**某些SQL Server 2005的功能可能不适用于2000版本,例如新的函数和存储过程等。 3. **测试:**在实际转换前进行全面测试,确保转换后数据库的完整性和正确性。 4. **备份:**在进行任何...
### SQL Server基本系统函数概述 SQL Server作为一款强大的关系型数据库管理系统,在其功能体系中集成了大量的内置函数,这些函数可以极大地简化开发人员的操作过程,提高数据处理的效率与准确性。根据官方文档以及...
从标签“SQL2005数据库对比工具”我们可以推断,这个工具是专为SQL Server 2005设计的,可能不支持更早或更新的SQL Server版本。因此,如果你有多个版本的SQL Server环境,需要选择对应版本的对比工具。 压缩包内的...
而在SQL2005中,新增了`sys.objects`视图。`sys.objects`提供了一个更现代且全面的接口,它只支持SQL2005,用于查询所有用户定义的架构范围内的对象。尽管SQL2005仍然保留了`sysobjects`和`sys.sysobjects`以保持向...
此外,随着SQL Server版本的更新,新的日期和时间函数也不断出现,例如在SQL Server 2005及以后的版本中,新增了关于日期和时间的更多高级功能。尽管如此,SQL Server 2000的日期函数仍然是理解和掌握SQL日期处理的...
2. **支持新特性**:它支持SQL Server 2005引入的新特性,如行版本控制、分区视图、用户定义的函数和存储过程等。 3. **安全性增强**:支持集成Windows身份验证,提供更安全的连接方式,同时支持SQL Server的角色...
### SQL Server 2005新增的小功能详解 #### 一、分页查询数据 在SQL Server 2005之前,实现分页查询通常较为复杂且效率不高。随着SQL Server 2005的发布,引入了一种更为简便的方式来实现分页查询,即通过`ROW_...
在更现代的SQL Server版本中(如SQL Server 2005及以上),可以直接在函数中使用`GETDATE()`而无需这些变通方法。 #### 结论 在SQL Server 2000中,通过创建视图并将`GETDATE()`的值存储在其中,然后再通过自定义...
该书解释并比较了SQL Server 2000和SQL Server 2005在数据库开发相关问题上的解决方案,深入讨论了SQL Server 2005中新增的T-SQL编程特性,包含了大量的代码示例、表示例和逻辑难题以帮助数据库开发人员和管理员理解...
以上只是SQL函数集合中的一部分,实际中还有更多的函数,如位运算函数、窗口函数等,每个都有自己独特的用途。掌握并熟练运用这些函数,能有效提升SQL查询的效率和灵活性。在实际工作中,可以根据需求灵活选择和组合...
该书解释并比较了sql server 2000和sql server 2005在数据库开发相关问题上的解决方案,深入讨论了sql server 2005中新增的t-sql编程特性,包含了大量的代码示例、表示例和逻辑难题以帮助数据库开发人员和管理员理解...
6. **SQL MIN() 函数**:与`MAX()` 相反,`MIN()` 函数返回一列中的最小值,如`MIN(date)` 可找出最早的日期。 7. **SQL SUM() 函数**:用于计算一列数值的总和。例如,`SUM(amount)` 返回指定表中"amount"列的所有...
由于SQL Server 2000的年代较早,可能没有内置的汉字转拼音支持,所以可能需要依赖第三方库或者自建数据结构。 2. **函数结构**:UDF的主体部分通常是一个接受输入参数(例如汉字字符串)的存储过程,然后返回对应...
在SQL Server 2005中,新增了以下几种排名函数: - **ROW_NUMBER**: 为结果集中的每一行分配一个唯一的整数。 - **RANK**: 根据特定列的值对行进行排序并分配一个排名。 - **DENSE_RANK**: 类似于RANK函数,但在...
### SQL函数总结 #### 一、SQL概述 SQL(Structured Query Language,结构化查询语言)是一种专门用于管理和处理关系型数据库的标准计算机语言。它由美国国家标准协会(ANSI)制定,广泛应用于各种数据库系统中,...
该版本的T-SQL结构化查询语言大幅扩增了新的查询指令,例如XQuery、取得排名顺序的函数、集合运算搭配OVER 运算符、TOP 运算符可以搭配变量或子查询,以及透过新增的 CTE(Common Table Expression)语法完成以前...