SQL SERVER中使用WITH TIES获取前几行数据
SQL SERVER中使用WITH TIES获取前几行数据
SQL SERVER中使用WITH TIES获取前几行数据一、SQL SERVER中使用WITH TIES的用途
1、在排名次时,经常遇到取前10名,但刚好第11名(12、13...)的成绩和第10名的一样,我们必须也把后面成绩相同的也取出来,SQL SERVER中WITH TIES语句就可以解决这类问题。
2、with ties一般是和Top , order by相结合使用的,会查询出最后一条数据额外的返回值(如果按照order by 参数排序TOP n返回了前面n个记录,但是n+1…n+k条记录和排序后的第n条记录的参数值(order by 后面的参数)相同,则n+1、…、n+k也返回。n+1、…、n+k就是额外的返回值)。
二、通过实例说明使用WITH TIES 与 不使用 WITH TIES的区别
1、初始数据
CREATE TABLE students(
id int IDENTITY(1,1) NOT NULL,
score int NULL
) ON PRIMARY
GO
INSERT INTO students (score) VALUES (100)
INSERT INTO students (score) VALUES (100)
INSERT INTO students (score) VALUES (100)
INSERT INTO students (score) VALUES (90)
INSERT INTO students (score) VALUES (90)
INSERT INTO students (score) VALUES (85)
INSERT INTO students (score) VALUES (84)
INSERT INTO students (score) VALUES (80)
INSERT INTO students (score) VALUES (80)
INSERT INTO students (score) VALUES (75)
INSERT INTO students (score) VALUES (74)
INSERT INTO students (score) VALUES (70)
2、不使用WITH TIES查询成绩排名前8的学生
SELECT TOP 8 * FROM students ORDER BY score DESC
结果
说明
上述查询将在返回第8行后截断结果,而不管后面还有多少条记录的score与第8行的score相同,这样并列第8名的记录就去不出来了。
3、使用WITH TIES查询成绩排名前8的学生
SELECT TOP 8 WITH TIES * FROM students ORDER BY score DESC
结果
说明
上面的这条查询将会返回9行,原因在于第9行中的score值都与第8行相同。
三、SQL SERVER WITH TIES语句使用说明
1、使用WITH TIES的语句查询的结果集包含与返回的最后一行中一个或多个 ORDER BY 列中的值匹配的任何其他行, 这可能导致返回的行数多于在 expression 中指定的值。 例如,如果 expression 设置为 5,而 2 个其他行与第 5 行中 ORDER BY 列的值匹配,则结果集将包含 7 行。
2、top、with ties、order by三者必须结合使用,否则会报错。
- sqlserver 高级查询(SQL Server2019数据库之简单子查询的具有方法)
- sqlserver纵表变横表(SQL Server行转列的方法解析)
- SQL Server中使用order by charindex按指定顺序排序
- sqlservercount函数怎么用(Sql Server中Substring函数的用法实例解析)
- sql server2019无法连接到服务器(SQL Server常见问题及解决方法分享)
- 阿里云sql server 2012(远程连接阿里云SqlServer 2012 数据库服务器的图文教程)
- sql server代理无法启动服务(SQL Server作业失败:无法确定所有者是否有服务器访问权限的解决方法)
- sql server重建索引
- sqlserver日志被删除(sql server日志处理不当造成的隐患详解)
- sqlserver语句创建窗口布局(SQL Server 2012 开窗函数)
- 利用数据库安装centos7(CentOS安装SQL Server vNext CTP1教程)
- SQL Server数据库应用中有用的几个工具
- 数据库sqlserver定时任务(SQL Server 2005作业设置定时任务)
- Sql Server事务日志
- sql server案例(SQL Server作业报错特殊案例分析)
- sqlserver2012如何安装如何使用(Sql server 2012 中文企业版安装图文教程附下载链接)
- 文莱旅游攻略(文莱旅游攻略介绍)
- 马来西亚旅游攻略(马来西亚旅游攻略自由行攻略)
- 缅甸旅游攻略(缅甸旅游攻略必去景点推荐)
- 《庆余年2》新消息,原班人马,肖战特别出演,这才是最好的安排(庆余年2新消息原班人马)
- 宁夏灵武恐龙化石发现始末(宁夏灵武恐龙化石发现始末)
- 到了岁末 临门一脚 节点,天台综合督评会目标直指 全年红(到了岁末临门一脚)
热门推荐
- dedecms提示信息(DedeCms fckeditor编辑器空白无法显示的相关问题)
- docker容器默认内存大小(Docker 修改docker存储位置 修改容器镜像大小限制操作)
- Js如何判断浏览器类型和版本
- mysql定期备份(Mysql5.7定时备份的实现)
- vue走马灯特效(Javascript结合Vue实现对任意迷宫图片的自动寻路)
- docker容器的三大组件(docker容器下配置jupyter notebook的操作)
- docker-compose绑定端口失效(docker-compose创建网桥,添加子网,删除网卡的实现)
- phpcurl调用本地函数(PHP使用CURL实现下载文件功能示例)
- 创建数据表的sql语句代码(用注解编写创建表的SQL语句)
- mvc中Action前HttpPost的作用
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9