sqlserver 使用总结

原创 2015年11月20日 12:44:34

一、sqlserver 排序  rank()函数

使用方法:和row_number() over(order by 字段名称 desc) 使用方法类似

eg: select  rank() over(order by age desc) from students ( styudent 表里面有字段 int 类型age字段 ) 如果有2个相同的age值,则并列

例子SELECT RANK() OVER (ORDER BY Age) AS [Rank by Age],
FirstName,
Age
FROM Person输出如下:Rank by Age                 FirstName         Age
-------------------- ---------- -----------
1                           Larry             5
2                           Doris             6
2                           George            6
4                           Mary              11
4                           Sherry            11
6                           Sam               17
7                           Ted               23
7                           Marty             23
9                           Sue               29
10                          Frank             38
11                          John              40

看到了么,同年岭的话,将有相同的顺序,顺序成1,2,2,4了。

二、ntile( )函数

SELECT FirstName,
Age,
NTILE(3) OVER (ORDER BY Age) AS [Age Groups]
FROM Person

输出结果:
FirstName        Age               Age Groups
---------- ----------- --------------------
Larry                5                  1
Doris                6                  1
George            6                  1
Mary                11                1
Sherry             11                 2
Sam                17                 2
Ted                 23                 2
Marty              23                 2
Sue                29                 3
Frank             38                 3
John               40                 3
这个函数按照ntile(n)中的N,把记录强制分成多少段,11条记录现在分成3段了,lary到mary是第1段,sherry到maty是第2段,sue到john是第3段 了。

三、DENSE_RANK( )函数
         SELECT DENSE_RANK() OVER (ORDER BY Age) AS [Dense Rank by Age], 
         FirstName, 
         Age
         FROM Person

输出结果为:
Dense Rank by Age          FirstName        Age
-------------------- ---------- -----------
1                          Larry            5
2                          Doris            6
2                          George           6
3                          Mary             11
3                          Sherry           11
4                          Sam              17
5                          Ted              23
5                          Marty            23
6                          Sue              29
7                          Frank            38
8                          John             40

看到了么,和rank函数区别是,顺序始终是连续的,Doris 和George同年,都是排第2位,但之后的mary不象rank函数那样排第4,而是排第3位了




相关文章推荐

DB2,MySql,SqlServer,Oracle游标使用总结

游标
  • lxw0511
  • lxw0511
  • 2017年06月02日 10:18
  • 551

SQLServer系统函数总结

  • 2013年05月18日 09:18
  • 61KB
  • 下载

MySQL、SQLServer、Oracle添加、修改、删除字段总结

MySQL、SQLServer、Oracle添加、修改、删除字段总结: alter table……

SQLSERVER存储过程大总结

  • 2014年06月03日 16:53
  • 1.91MB
  • 下载

sqlserver常用命令总结

(1) 数据记录筛选:   sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]"   sql="select * from 数据表...

SQLSERVER操作总结

  • 2010年12月04日 22:00
  • 158KB
  • 下载

sqlserver性能性能调优实战学习总结一

sql优化
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:sqlserver 使用总结
举报原因:
原因补充:

(最多只允许输入30个字)