码迷,mamicode.com
首页 > 数据库 > 详细

SQL Server with ties 语句

时间:2016-06-26 21:12:45      阅读:259      评论:0      收藏:0      [点我收藏+]

标签:

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 语句

标签:

原文地址:http://www.cnblogs.com/zhaochengshen/p/5618488.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!