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 再看看查询结果:

SQL语句中的TOP(expression) [PERCENT] [WITH TIES] 用法的更多相关文章

  1. SQL语句中Left join,right join,inner join用法

    转载于:https://blog.csdn.net/lichkui/article/details/2002895 一.先看一些最简单的例子 例子 Table Aaid   adate 1      ...

  2. SQL语句中order_by_、group_by_、having的用法区别

    order by 从英文里理解就是行的排序方式,默认的为升序. order by 后面必须列出排序的字段名,可以是多个字段名. group by 从英文里理解就是分组.必须有“聚合函数”来配合才能使用 ...

  3. SQL语句中drop、truncate和delete的用法

    一.SQL中的语法 1.drop table  dbo.Sys_Test   2.truncate  table dbo.Sys_Test                     3.delete f ...

  4. SQL语句中in not in exits not exits用法比较

    exists (sql 如果返回结果集为真) not exists (sql 如果没有返回结果集为真) 如下: 表A ID NAME 1 A1 2 A2 3 A3 表B ID AID NAME 1 1 ...

  5. mysql中sql语句中常见的group_concat()函数意思以及用法,oracle中与其一样的功能函数是wmsys.wm_concat()

    1.group_concat(),手册上说明:该函数返回带有来自一个组的连接的非NULL值的字符串结果.比较抽象,难以理解. 通俗点理解,其实是这样的:group_concat()会计算哪些行属于同一 ...

  6. SQL语句中case,when,then的用法

    用法如下bai: 复制代码 SELECT s.s_id, s.s_name, s.s_sex, CASE WHENs.s_sex='1'THEN'男' WHENs.s_sex='2'THEN'女' E ...

  7. sql语句中charindex的用法 可用于截取字符串

    使用CHARINDEX和PATINDEX函数来搜索文字列和字符串.这两个函数是如何运转的,解释他们的区别.同时提供一些例子,通过这些例子,你可以可以考虑使用这两个函数来解决很多不同的字符搜索的问题. ...

  8. SQL语句中的乘号

    在ADO中,我们需要在SQL语句中使用乘法运算,可是添加'*'以后执行程序总是会出错,这是因为‘*’与sql中的‘*’关键字重合了,所以编译会出错. 解决办法:将乘法运算放到sql语句外面,将结果放入 ...

  9. SQL点滴35—SQL语句中的exists

    原文:SQL点滴35-SQL语句中的exists 比如在Northwind数据库中有一个查询为 SELECT c.CustomerId,CompanyName FROM Customers c WHE ...

随机推荐

  1. ios 打tag

    修改spec文件的version: git commit -am"version 0.1.1" git push origin master -u git tag 0.1.1 gi ...

  2. javascript中Date使用

    <script type="text/javascript">    //返回当前日期和时间        var newDate=new Date();        ...

  3. PHP下ajax跨子域的解决方案之document.domain+iframe

    对于主域相同,子域不同,我们可以设置相同的document.domain来欺骗浏览器,达到跨子域的效果.   例如:我们有两个域名:www.a.com 和 img.a.com 在www.a.com下有 ...

  4. C#以记事本(指定程序)打开外部文档(指定文档)

    System.Diagnostics.Process.Start("notepad.exe", "D:\\a.txt");

  5. FutureTask详解

    1 基本概念 1.1 Callable与Future Runnable封装一个异步运行的任务,可以把它想象成为一个没有参数和返回值的异步方法.Callable与Runnable类似,但是有返回值.Ca ...

  6. POJ 2585.Window Pains 拓扑排序

    Window Pains Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 1888   Accepted: 944 Descr ...

  7. Laravel图表扩展包推荐:Charts

     2016年11月15日 ·  2283次 ·  4条 ·  laravel,package,charts 介绍 在项目开发中,创建图表通常是一件痛苦的事情.因为你必须将数据转换为图表库支持的格式传输 ...

  8. css长度

    在CSS样式表中,长度单位分两种: 相对长度单位,如px, em等绝对长度单位,如pt,mm等 CSS相对长度单位(relative length unit) CSS相对长度单位中的相对二字,表明了其 ...

  9. 【JDBC&Dbutils】JDBC&JDBC连接池&DBUtils使用方法(重要)

    -----------------------JDBC---------- 0.      db.properties文件 driver=com.mysql.jdbc.Driver url=jdbc: ...

  10. 2018.09.30 bzoj2288:生日礼物(贪心+线段树)

    传送门 线段树经典题目. 每次先找到最大子段和来更新答案,然后利用网络流反悔退流的思想把这个最大字段乘-1之后放回去. 代码: #include<bits/stdc++.h> #defin ...