文档章节

SQL SERVER使用WITH TIES获取前几行数据

 学习也休闲
发布于 2016/04/23 17:10
字数 375
阅读 48
收藏 2

一、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实例

 

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、查询成绩排名前8的学生


SELECT TOP 8 WITH TIES * FROM students ORDER BY score DESC



3、结果




4、说明


上面的这条查询将会返回9行,原因在于第9行中的score值都与第8行相同。


参考资料:SQL SERVER使用WITH TIES获取前几行数据   http://www.studyofnet.com/news/1227.html


© 著作权归作者所有

粉丝 6
博文 99
码字总数 38516
作品 0
海淀
私信 提问
SQL Server 中的锁与并发

原文出处:nogos 并发可以定义为多个进程同时访问或修改共享数据的能力。处于活动状态而互不干涉的并发用户进程的数量越多,数据库系统的并发性就越好。当一个正在修改数据的进程阻止了其他进...

nogos
2016/08/10
0
0
SQL Server 的魔术表

介绍 这里,我将会解释什么是Magic Table,还有如何在 SQL Server 获取它. 背景 这种信息可以从 SqlServer Trigger 服务处获取到. Magic Table 被“插入” 和 “删除” 的表被称为 SQL Serv...

oschina
2014/05/09
470
0
SQL Server -- 看懂SqlServer查询计划

看懂SqlServer查询计划 http://www.cnblogs.com/fish-li/archive/2011/06/06/2073626.html 看懂SqlServer查询计划 阅读目录 开始 SQL Server 查找记录的方法 SQL Server Join 方式 更具体执行...

chenhao_asd
2018/04/15
0
0
索引的一些总结

1.1.1 摘要 如果说要对数据库进行优化,我们主要可以通过以下五种方法,对数据库系统进行优化。 1. 计算机硬件调优 2. 应用程序调优 3. 数据库索引优化 4. SQL语句优化 5. 事务处理调优 在本...

长平狐
2012/06/11
150
0
SQL Server DBA 必须了解的性能调优要点

这篇文章概述了SQL Server性能调优中的各种选项和工具。性能调优是一项迭代前行且永无止境的一项工作。典型的性能调优方法有 实例级别 数据库级别 应用程序级别 在创建伊始就对SQL Server进行...

oschina
2013/01/04
11.6K
0

没有更多内容

加载失败,请刷新页面

加载更多

聊聊中国的通信行业:从“七国八制”到“中华”脊梁

本期文章和大家一起来聊一聊我曾经从事过的通信行业吧。最近各方面信息的泛滥,包括和华为的同学聊天,自己确实也感慨颇多。想想我自己本科主修通信工程,研究生再修信息与通信工程,从本科开...

CodeSheep
48分钟前
3
0
MDK:ARM M451M:exceed the range of code meory, continue to erase or not?

问题: 代码空间超限 几天前就遇到:exceed the range of code meory, continue to erase or not? 如下所示: 解决过程 开始以为中MDK软件的128KB限制,如是就不能生成HEX文件,应该链接时有提...

SamXIAO
55分钟前
1
1
OSChina 周六乱弹 —— 因违反《中华人民共和国治安管理处罚法》第四十四条之规定

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @xiaoshiyue :#今日歌曲推荐# 惊艳分享谷微的单曲《安守本份》(@网易云音乐) 《安守本份》- 谷微 手机党少年们想听歌,请使劲儿戳(这里) ...

小小编辑
今天
266
7
Angular 英雄编辑器

应用程序现在有了基本的标题。 接下来你要创建一个新的组件来显示英雄信息并且把这个组件放到应用程序的外壳里去。 创建英雄组件 使用 Angular CLI 创建一个名为 heroes 的新组件。 ng gener...

honeymoose
今天
8
0
Kernel DMA

为什么会有DMA(直接内存访问)?我们知道通常情况下,内存数据跟外设之间的通信是通过cpu来传递的。cpu运行io指令将数据从内存拷贝到外设的io端口,或者从外设的io端口拷贝到内存。由于外设...

yepanl
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部