当前位置: 首页 > news >正文

SQL server 2005中新增函数及操作(ZT)

1 SQL server 2005中新增的排序函数及操作 
SELECT
YEAR(BirthDate),
    ROW_NUMBER() OVER(ORDER BY YEAR(BirthDate)) AS 'RowNumber',/**//* 按年产生一个唯一的序号 */
    ROW_NUMBER() OVER(PARTITION BY YEAR(BirthDate) ORDER BY BirthDate) AS RowNumberPartition, /**//* 每年产生一个唯一的序列 */
    RANK() OVER(ORDER BY YEAR(BirthDate)) AS 'Rank', /**//* 产生一个非紧密排名 */
    DENSE_RANK() OVER(ORDER BY YEAR(BirthDate)) AS 'Dense_Rank', /**//* 产生一个紧密排名 */
    NTILE(10) OVER(ORDER BY BirthDate DESC) AS 'ntile' /**//* 将结果分成10个组 */
FROM HumanResources.Employee
ORDER BY BirthDate
看看新的排序函数如何解决SQL server 2000中不方便解决的问题
--按BirthDate排序,取第10条到20条的数据 (这一定是最激动人心的新特性,哈哈)
SELECT BirthDate FROM
(
SELECT
        ROW_NUMBER() OVER(ORDER BY BirthDate) AS a,BirthDate
FROM HumanResources.Employee
) AS a
WHERE a BETWEEN 10 AND 20

--将数据分成十份,取第三份
SELECT
    BirthDate
FROM
(
SELECT
    NTILE(10) OVER(ORDER BY BirthDate DESC) AS a,BirthDate
FROM HumanResources.Employee
) AS a
WHERE a = 3再来看看如何用新的排序函数解决以前在SQL server 2000中的问题
-- 出生的员工最多的一年出生多少员工(有点)
/**//* SQL server 2000 */
SELECT MAX(a)
FROM
(
SELECT COUNT(EmployeeID) AS a FROM HumanResources.Employee GROUP BY YEAR(BirthDate)
) AS a

/**//* SQL server 2005  */
SELECT MAX(a)
FROM
(
SELECT
    ROW_NUMBER() OVER(PARTITION BY YEAR(BirthDate) ORDER BY BirthDate) AS a
FROM HumanResources.Employee
) AS a

-- 出生日期涵盖了多少年
/**//* SQL server 2000  */
SELECT COUNT(DISTINCT YEAR(BirthDate)) FROM HumanResources.Employee

/**//* SQL server 2005 */
SELECT MAX(a)
FROM
(
SELECT
    DENSE_RANK() OVER(ORDER BY YEAR(BirthDate)) AS a
FROM HumanResources.Employee
) AS a

-- 显示前10%的数据
/**//* SQL server 2000  */
SELECT TOP 10 Percent BirthDate FROM HumanResources.Employee

/**//* SQL server 2005  */
SELECT
    BirthDate
FROM
(
SELECT
    NTILE(10) OVER(ORDER BY BirthDate DESC) AS a,BirthDate
FROM HumanResources.Employee
) AS a
WHERE a = 1

http://www.cnblogs.com/xh831213/archive/2008/02/13/1068041.html

相关文章:

  • 智能分单算法
  • NHibernate.Search 基于Lucene.NET的全文索引
  • mail退信!
  • 在Spring中发现java.lang.ClassCastException: $Proxy1问题解析
  • (转)setTimeout 和 setInterval 的区别
  • Bing正在让Image Graphic变得更加实用、吸引人
  • 持久数据层框架设计(二)
  • 《编译原理实践与指导教程》——第1章 词法分析与语法分析
  • gtest中如何跳出当前测试案例
  • linux-image-2.6.27-7-generic_2.6.27-7.16_i386.deb 无法安装
  • 安防设备:传统与智能差异在何处?
  • 微软确认Windows 7可降级至XP
  • 一键获取软硬件配置及管理员组
  • AMD发布第七代Pro A系列APU:面向企业
  • 草食系的“恋爱秘方”
  • 【Leetcode】101. 对称二叉树
  • (三)从jvm层面了解线程的启动和停止
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • Android Studio:GIT提交项目到远程仓库
  • Android交互
  • JavaScript 奇技淫巧
  • Java新版本的开发已正式进入轨道,版本号18.3
  • JDK9: 集成 Jshell 和 Maven 项目.
  • MySQL的数据类型
  • React的组件模式
  • scrapy学习之路4(itemloder的使用)
  • 从输入URL到页面加载发生了什么
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 官方解决所有 npm 全局安装权限问题
  • 盘点那些不知名却常用的 Git 操作
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 数据仓库的几种建模方法
  • 微信小程序:实现悬浮返回和分享按钮
  • ​iOS安全加固方法及实现
  • ​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化
  • #QT项目实战(天气预报)
  • #单片机(TB6600驱动42步进电机)
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (二)JAVA使用POI操作excel
  • (二)pulsar安装在独立的docker中,python测试
  • (十八)SpringBoot之发送QQ邮件
  • (五)c52学习之旅-静态数码管
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • (转)使用VMware vSphere标准交换机设置网络连接
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .net 4.0发布后不能正常显示图片问题
  • .NET I/O 学习笔记:对文件和目录进行解压缩操作
  • .net 程序 换成 java,NET程序员如何转行为J2EE之java基础上(9)
  • .NET 命令行参数包含应用程序路径吗?
  • .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景
  • .net解析传过来的xml_DOM4J解析XML文件