博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sqlserver数据库方面的排序四大王
阅读量:5263 次
发布时间:2019-06-14

本文共 913 字,大约阅读时间需要 3 分钟。

--1. row_number 用法 这个函数的功能是为查询出来的每一行记录生成一个序号

select row_number() over(order by stuid) as row_number,* from score

with t_rowtable

as
(
  select row_number() over(order by stuid) as row_number,*from Score
)
select * from t_rowtable where row_number>1 and row_number<4 order by stuid

--top 分页(比较麻烦)

select * from(select top 2 * from(select top 3 * from Score order by stuID)a
order by stuid desc) b order by stuid

--2.rank 函数考虑到了over子句中排序字段值相同的情况

select rank() over(order by stuid) as 排序列,* from Score order by stuID

--3.dense_rank 函数的功能与rank函数类似,只是在生成序号时是连续的,而rank函数生成的序号有可能不连续。

select dense_rank() over(order by stuid),* from Score order by stuID

--4.ntile函数可以对序号进行分组处理。这就相当于将查询出来的记录集放到指定长度的数组中,每一个数组元素存放一定数量的记录。

-- ntile函数为每条记录生成的序号就是这条记录所有的数组元素的索引(从1开始)。也可以将每一个分配记录的数组元素称为“桶”。
-- ntile函数有一个参数,用来指定桶数。
select ntile(3) over(order by stuid)as bucket,* from Score

转载于:https://www.cnblogs.com/kuangfeng/p/8023346.html

你可能感兴趣的文章
daydayup2 codeforces143C
查看>>
ANT打包J2EE项目war包
查看>>
UESTC-我要长高 DP优化
查看>>
java选择文件时提供图像缩略图[转]
查看>>
求最小公倍数LCM
查看>>
aspnet excel导入导出SQLserver
查看>>
走进线性表,初步感受数据结构的魅力
查看>>
linux命令进阶及和windows进行文件传输的所有方式
查看>>
php面试重要知识点,面试题
查看>>
shell脚本——正则表达式
查看>>
ubuntu如何安装虚拟机的工具条
查看>>
Alpha的过程总结
查看>>
printf格式输出知识整理
查看>>
sed 命令用法
查看>>
当DIV内出现滚动条,fixed实效怎么办?
查看>>
方维分享系统二次开发, 给评论、主题、回复、活动 加审核的功能
查看>>
Matlab parfor-loop并行运算
查看>>
Python中的正则表达式(翻译自DiveintoPython3)
查看>>
java设计模式学习(五):命令模式
查看>>
JavaScript点击按钮创建列表
查看>>