SQL Server with ties 语句
With ties 语句是与top、order by 语句联合使用的语句;我们在实际查询过程中会遇到这样的情况,比如查询考试为前三名的学生信息,发现有并列第三的情况,如果我们只是top 3 发现并列第三的学生信息有的没有显示出来,基于这种情况我们就需要结合with ties 语句进行查询。With ties语句作用查询出,根据top筛选出的最后一条记录中和order by [字段] 相同值的其他记录。
示例:
1、 首先我们创建一个简单的学生成绩表;然后添加10条测试数据;
create table StudentScore(
id int not null primary key identity(1,1),
studentName varchar(50),
Score int
)
insert into StudentScore(studentName,Score) VALUES
('Name1',99),
('Name2',98),
('Name3',97),
('Name4',97),
('Name5',96),
('Name6',94),
('Name7',93),
('Name8',92),
('Name9',91),
('Name10',89)
select * from StudentScore

--现在我们找出考试成绩最好的前三名
select top 3* from StudentScore order by Score desc

--现在问题来了,我们发现得分为97的有两个学生,其实他们是并列第3的,但是只显示了一个得分为97的学生信息;现在就要用到with ties 语句了
select top 3 with ties * from StudentScore order by Score desc

-- 我们这里指定了top 3 却输出了4行记录;首先查询结果返回的是基于order by score的top 3 行,然后返回top3中最后一行与score值相同的其他行;
-- Tips:With ties 语句只能与top、order by 同时使用
-- 不和top 、order by 结合使用
select with ties * from studentScore

-- 不和order by 结合使用
select top 3 with ties * from StudentScore

-- 不和top 结合使用
select with ties * from studentScore order by score

SQL Server with ties 语句的更多相关文章
- 【转载】SQL Server - 使用 Merge 语句实现表数据之间的对比同步
原文地址:SQL Server - 使用 Merge 语句实现表数据之间的对比同步 表数据之间的同步有很多种实现方式,比如删除然后重新 INSERT,或者写一些其它的分支条件判断再加以 INSERT ...
- Sql server的Merge语句,源表中如果有重复数据会导致执行报错
用过sql server的Merge语句的开发人员都应该很清楚Merge用来做表数据的插入/更新是非常方便的,但是其中有一个问题值得关注,那就是Merge语句中的源表中不能出现重复的数据,我们举例来说 ...
- SQL server 查看什么语句在使用临时表
SQL server 查询那些语句在使用临时表 最近在日常的性能测试工作中发现,数据库端的IO读写比较大,有规律的2-8M的波动,数据库的版本为 SQL server 2008 sp3. 这些IO操作 ...
- SQL Server读懂语句运行的统计信息 SET STATISTICS TIME IO PROFILE ON
对于语句的运行,除了执行计划本身,还有一些其他因素要考虑,例如语句的编译时间.执行时间.做了多少次磁盘读等. 如果DBA能够把问题语句单独测试运行,可以在运行前打开下面这三个开关,收集语句运行的统计信 ...
- SQL Server中CURD语句的锁流程分析
我只在数据库选项已开启“行版本控制的已提交读”(READ_COMMITTED_SNAPSHOT为ON)中进行了观察. 因此只适用于这种环境的数据库. 该类数据库支持四种不同事务隔离级别,下面分别观察数 ...
- SQL Server ---T-SQl基本语句
T-SQL 是 SQL-Server 的结构化查询语言. 基本数据操作语言. 基础语句 先创建表 我后面的列子都是用的这一个表,列名啥的 就大概看看吧~~ 纯粹为了学习语句,语法~~所以先创建个表吧~ ...
- SQL Server 基本SELECT语句
1.SELECT 和 FROM 语句 SELECT表示执行的是查询,接着需要更知道从哪边查询数据,FROM就是限制读取的数据在哪一个表或哪几个表中,这样就构成了一个基本语句. SELECT * FRO ...
- 转:SQL Server - 使用 Merge 语句实现表数据之间的对比同步
表数据之间的同步有很多种实现方式,比如删除然后重新 INSERT,或者写一些其它的分支条件判断再加以 INSERT 或者 UPDATE 等.包括在 SSIS Package 中也可以通过 Lookup ...
- SQL Server - 使用 Merge 语句实现表数据之间的对比同步
表数据之间的同步有很多种实现方式,比如删除然后重新 INSERT,或者写一些其它的分支条件判断再加以 INSERT 或者 UPDATE 等.包括在 SSIS Package 中也可以通过 Lookup ...
随机推荐
- TypeError: argument to reversed() must be a sequence ERROR basehttp 124 "GET /admin/ HTTP/1.1" 500 114103 Performing system checks...
Error Msg TypeError: argument to reversed() must be a sequence ERROR basehttp 124 "GET /admin/ ...
- HBase操作命令总结
1,如何运行HBase 1,如何查找hbase的安装目录 whereis用来查找程序的安装目录.帮助文档等等,如下: whereis hbase 结果如下,目录下一级包含bin的就是hbase的安装目 ...
- VUE 绑定背景图片的写法
<div v-bind:style='{"background-image":"url("+imgUrl+")"}' >< ...
- Go 连接 mysql 数据库的简单测试.
1. import 的时候 总是很慢 容易失败 所以 优先导入几个必须要的包 go get github.com/go-sql-driver/mysql 安装完之后 会在gopath 目录下发现相关的 ...
- 搭建Android手机服务器(一)
自从上学期的软件工程课之后,我们团队设计的抢答器一直想把服务端移到移动端.所以,我一直在考虑如何把手机作为一台服务器.今天我主要讲解一下,对于没有android真机只有模拟器的,如何设置模拟器,使得在 ...
- c语言提高(第二次作业)
1. 画出字符串一级指针内存四区模型 #include <stdio.h> #include <string.h> int main(void) { char buf[20]= ...
- gson常用的方式
gson提供的fromJson()方法来实现从Json相关对象到Java实体的方法. 第一种.Json格式转成单一实体对象和转换成对象列表或者其他结构 第二种.转换成列表类型 注:TypeToken: ...
- codeforces479E
Riding in a Lift CodeForces - 479E Imagine that you are in a building that has exactly n floors. You ...
- MYSQL IN 出现的慢查询问题
IN = https://blog.csdn.net/solmyr_biti/article/details/54293492 https://www.cnblogs.com/wxw16/p/6105 ...
- 数据分析---《Python for Data Analysis》学习笔记【01】
<Python for Data Analysis>一书由Wes Mckinney所著,中文译名是<利用Python进行数据分析>.这里记录一下学习过程,其中有些方法和书中不同 ...