數(shù)據(jù)庫基礎(chǔ)Select之Top的使用和理解
在準(zhǔn)備數(shù)據(jù)庫的系列經(jīng)驗(yàn)中,通過表格展示數(shù)據(jù)的形式,加上一些生動有趣的方法,讓大家更容易理解和掌握數(shù)據(jù)庫的知識。我們的目標(biāo)是讓學(xué)習(xí)更加簡單和有趣。本期介紹的是第二篇:Top的使用和理解。 使用TOP獲
在準(zhǔn)備數(shù)據(jù)庫的系列經(jīng)驗(yàn)中,通過表格展示數(shù)據(jù)的形式,加上一些生動有趣的方法,讓大家更容易理解和掌握數(shù)據(jù)庫的知識。我們的目標(biāo)是讓學(xué)習(xí)更加簡單和有趣。本期介紹的是第二篇:Top的使用和理解。
使用TOP獲取前幾行數(shù)據(jù)
當(dāng)查詢的數(shù)據(jù)太多,我們只想要返回查詢結(jié)果的前幾行(或百分比時),就需要用到TOP關(guān)鍵字。具體的用法如下:
首先,先看我們的基表(還沒有進(jìn)行Sql語句操作的原始表)STUDENT。這個表有5個字段,共20行數(shù)據(jù)。
要獲取查詢結(jié)果的前面幾行數(shù)據(jù),數(shù)值表達(dá)式必須為整數(shù)。例如:
SELECT TOP 11 * FROM STUDENT
當(dāng)然,TOP后面也可以是一個數(shù)學(xué)表達(dá)式,但其結(jié)果必須為整數(shù)。例如:
SELECT TOP (5 5) * FROM STUDENT
這樣會返回前10行結(jié)果。
使用TOP獲取前n%的行數(shù)據(jù)
如果我們想要獲取查詢結(jié)果的前n%的行數(shù)據(jù),需要使用[PERCENT]選項(xiàng)。數(shù)值表達(dá)式可以為小數(shù)。當(dāng)計(jì)算百分比后,查詢結(jié)果行數(shù)為小數(shù),則最終返回結(jié)果為整數(shù)部分 1行。例如:
SELECT TOP 11 PERCENT * FROM STUDENT
這樣會返回前11%的結(jié)果:總20行 * 0.11 2.2行,于是結(jié)果返回前3行的數(shù)據(jù)。
TOP與ORDER BY子句配合使用
TOP還可以與ORDER BY(排序功能)子句配合使用。ORDER BY會根據(jù)某列進(jìn)行排序,默認(rèn)情況下是升序排序。例如:
SELECT TOP 5 * FROM STUDENT ORDER BY Stu_Age
這樣會返回按學(xué)生年齡排序的前5行數(shù)據(jù)。
使用WITH TIES關(guān)鍵字
TO