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

SQL语句中的TOP(expression) [PERCENT] [WITH TIES] 用法

结果会插入选择前1000行的时候,第一条数据。而不会选择ordery by name之后的top(1)

order by name 应该第一条是小花。

但是结果如下:插入的是小明,也就是我们在表右键选择前1000行时候默认的第一条数据。

SQL语句中的TOP(expression) [PERCENT] [WITH TIES] 用法

该子句不影响由insert 语句直接引用的行。insert语句会选择任意的一行。若要确保插入select子查询返回的前两行,应该如下语句:

insert into TB_Teacher (Name) select top(1) Name from TB_Teacher order by Name

SQL语句中的TOP(expression) [PERCENT] [WITH TIES] 用法

插入的就是 小花。

使用 with ties:

查询出前20%工资最高的员工,并且按照降序排列。指定with ties 可以确保结果中同时包含其工资   与 返回的最低工资相同的员工

SQL语句中的TOP(expression) [PERCENT] [WITH TIES] 用法

如果去掉 with ties 再看看查询结果:

SQL语句中的TOP(expression) [PERCENT] [WITH TIES] 用法

上一篇:[SQL in Azure] Tutorial: AlwaysOn Availability Groups in Azure (GUI)


下一篇:Oracle EBS-SQL (PO-11):检查采购订单退货数.sql