1. 程式人生 > >SQL語句中的TOP(expression) [PERCENT] [WITH TIES] 用法

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 再看看查詢結果: