| 网站首页 | 文章中心 | 电子书下载 | 矢量图库 | 视频教程 | 素材下载 | 程序代码下载 | JS代码 | 论坛 | 
龙腾教程网  
常用软件类:
|杀毒安全 |联络聊天 |网络软件 |多媒体类 |系统工具 |图形图像 |系统工具 |应用软件 |行业软件
开发设计类:
|动画制作 |图像处理 |3D设计 |操作系统 |站长学院 |网络相关 |WEB设计 |数据库类 |程序开发
 
  您当前位置:您现在的位置: 龙腾软件教程网 >> 文章中心 >> 数据库教程 >> MS SQL >> 文章正文>>>>>> 
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  
上一篇:
  • 上一篇文章:
  • 下一篇
  • 下一篇文章: 没有了
  • 收藏此文到百度搜藏 百度搜藏| 新浪VIvi| 365key| Younote| 博采中心| 你好BLOG| 亿友网摘| 和讯网摘|
    相关文章    
    MS SQL Server 2008数据库最新版功能介绍
    SQL Server快速导入数据的方法
    Oracle 数据库SQL 性能优化技巧21条
    SQL查询语句精华使用简要
    用SQL SELECT语句 创建记录和表
    SQL语言基本语句介绍
    实现数据分类汇总的SQL语句
    SQL 查询语言检索数据方法和技巧
    MS SQL存储过程入门与提高
    MS SQL2000数据库自动备份详解
     
     
     
    最新文章
    普通文章 SQL server 2005数据库新增的排序最新文章
    普通文章 Photoshop制作Sener梦幻非主流效最新文章
    普通文章 3DSMAX实列:制作生锈的螺丝钉最新文章
    普通文章 利用Photoshop蒙版打造雪景婚纱效最新文章
    普通文章 详解windows Vista 32位和64位系最新文章
    普通文章 Nero光盘超刻问题的解决方法最新文章
    普通文章 利用nero制作dvd启动盘的方法最新文章
    普通文章 Photoshop给建筑添加辉煌效果最新文章
    普通文章 Photoshop制作闪烁的霓虹灯文字最新文章
    普通文章 Photoshop给大树添加积雪效果最新文章
     
    热门文章
  • 没有推荐文章
  •  
     
    设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 

    版权所有2006-2008 龙腾教程网