SQL語句中的TOP(expression) [PERCENT] [WITH TIES] 用法
TOP(expression) [PERCENT] [WITH TIES]
expression : 指定返回行數的數值表示式。如果指定了PERCENT,則expression預設轉換為FLOAT值,否則,他預設為bigint值。
PERCENT:返回結果中前expression的百分比的行。
with ties :指定從基本結果集中返回額外的行,對於order by 列中指定的排序方式引數,這些額外返回行的該引數值與top n 中最後一行的該引數值相同。智慧在select 語句中且只有在指定order by 自居之後,才能指定top 。。。with ties
注意:
在insert,update,delete語句中,top後面的expression需要用()括起來。
如果查詢包含 order by子句,則將返回按order by子句排序的前expression行。如果查詢沒有order by,則行的順序是隨意的。
如下資料庫資料:執行一條sql語句:
insert top(1)into TB_Teacher (Name) select Name from TB_Teacher order by Name
結果會插入選擇前1000行的時候,第一條資料。而不會選擇ordery by name之後的top(1)
order by name 應該第一條是小花。
但是結果如下:插入的是小明,也就是我們在表右鍵選擇前1000行時候預設的第一條資料。
該子句不影響由insert 語句直接引用的行。insert語句會選擇任意的一行。若要確保插入select子查詢返回的前兩行,應該如下語句:
insert into TB_Teacher (Name) select top(1) Name from TB_Teacher order by Name
插入的就是 小花。
使用 with ties:
查詢出前20%工資最高的員工,並且按照降序排列。指定with ties 可以確保結果中同時包含其工資 與 返回的最低工資相同的員工
如果去掉 with ties 再看看查詢結果: