top与with ties用法
使用top中把与最后一条记录值相同的数据也放入列表中
一、SQL SERVER中使用WITH TIES的用途
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、使用WITH TIES查询成绩排名前8的学生
- SELECT TOP 8 WITH TIES * FROM students ORDER BY score DESC
结果
说明
上面的这条查询将会返回9行,原因在于第9行中的score值都与第8行相同。
参考资料:SQL SERVER中WITH TIES的用法 http://www.studyofnet.com/news/1227.html