2013-08-23 36 views
1

我想選擇前20%排序結果並且還剩下(下80%)。我們如何選擇sql server中的前20%和最後80%的記錄

當我這樣做

select top (20)percent from table 1 

後來

select top (80)percent from table 1 order by desc 

兩個不同的查詢,我得到的結果。但我的問題在於,如果記錄具有相同的有序列值,那麼我可能會再次選擇相同的記錄,因爲選擇不是內容。

您能否以任何好的方式提出建議,以便我可以在表格中選擇前20%不同和剩餘80%的記錄。

回答

5

爲了讓您的前20%的是:

select top (20) percent from table1 order by <something> 

如果你想在剩下的80%,它的一切,這不是在排名前20%;所以:

select * from table1 
except 
select top(20) percent from table1 order by <something> 
+0

謝謝@Martin;它應該是唯一的,所以我想它取決於有效載荷(即OP是否希望它在返回的列以外的東西上是唯一的)。 – Ben

+0

爲了使其具有確定性,他們需要添加一個獨特的tiebreaker。 –

相關問題