SQL SERVER使用WITH TIES獲取前幾行數據

1、SQL SERVER中使用WITH TIES的用途html

 

一、在排名次時,常常遇到取前10名,但恰好第11名(十二、13...)的成績和第10名的同樣,咱們必須也把後面成績相同的也取出來,SQL SERVER中WITH TIES語句就能夠解決這類問題。sql

二、with ties通常是和Top , order by相結合使用的,會查詢出最後一條數據額外的返回值(若是按照order by 參數排序TOP n返回了前面n個記錄,可是n+1…n+k條記錄和排序後的第n條記錄的參數值(order by 後面的參數)相同,則n+一、…、n+k也返回。n+一、…、n+k就是額外的返回值)。spa

 


2、使用WITH TIES實例code

 

一、初始數據htm

 

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)



二、查詢成績排名前8的學生排序


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



三、結果get




四、說明it


上面的這條查詢將會返回9行,緣由在於第9行中的score值都與第8行相同。class


參考資料:SQL SERVER使用WITH TIES獲取前幾行數據   http://www.studyofnet.com/news/1227.htmlim

相關文章
相關標籤/搜索