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

转载于:https://www.cnblogs.com/melodygkx/p/10169122.html

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

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

    order by 从英文里理解就是行的排序方式,默认的为升序. order by 后面必须列出排序的字段名,可以是多个字段名. group by 从英文里理解就是分组.必须有"聚合函数&qu ...

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

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

  3. SQL语句中的case when,decode的用法

    以下面的表为例: 用 case when 将人物战斗力筛选成不同的级别: 用法:case when 字段 = '值1' then '结果1' when 字段 = '值2' then '结果2' els ...

  4. Sql 语句中 IN 和 EXISTS

    原文链接:  (2条消息)Sql 语句中 IN 和 EXISTS 的区别及应用 - jcpp9527的博客 - CSDN博客 https://blog.csdn.net/wqc19920906/art ...

  5. Mybatis 源码探究 (4) 将sql 语句中的#{id} 替换成 ‘?

    Mybatis 源码探究 (4) 将sql 语句中的#{id} 替换成 '? 出于好奇,然后就有了这篇文章啦. 源码给我的感觉,是一座大山的感觉.曲曲折折的路很多,点进去就有可能出不来. 不过慢慢看下 ...

  6. oracle不使用游标,oracle – 为什么我们不能在动态SQL语句中使用强引用游标?

    这是一个带有强类型引用游标的过程: SQL> create or replace procedure p1 is 2 type dept_rc is ref cursor return dept ...

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

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

  8. sql语句中case_SQL中的CASE语句

    sql语句中case The case statement in SQL returns a value on a specified condition. We can use a Case sta ...

  9. SQL语句中,为什么where子句不能使用列别名,而order by却可以?

    当我们使用某个表达式作为输出的一列时,我们无法再Where条件中直接使用该列作判断条件.    例如下面的SQL语句: select id, (c1 + c2) as s from t1  where ...

最新文章

  1. The only supported ciphers are AES-128-CBC and AES-256-CBC
  2. jQuery 表格插件
  3. Linux下mysql 5.x得到root密码后的另外一种利用方式
  4. fopen_s不接受两个参数_如何利用SPC来管理制造过程,不懂SPC还敢混“质”场?
  5. ElasticSearch 文档的添加、获取、更新、删除_05
  6. 究竟哪种取数据的方式最快?
  7. 小猿圈python之python期末考试测试题(二)_小猿圈python之练习题
  8. JSK-372 图案输出【入门】
  9. devc编程c语言,【电子部新手教程之C语言入门篇】Dev-cpp安装与第一个程序
  10. i.MX283A移植mt7601--小米随身wifi
  11. 劳易测BPS300i SM 100条码定位
  12. netty系列之:真正的平等–UDT中的Rendezvous
  13. 137、易燃固体的分级
  14. 【Linux】Ubuntu运行环境搭建
  15. 如何实现一个地图库封装,可以快速切换地图
  16. String Ioc简介
  17. 信捷pLC C语言错误格式,信捷PLC常见问题及处理方法大全
  18. java 405_Http状态405-方法不允许
  19. web页面开发,一个前端妹子的面试笔记,知乎上已获万赞
  20. 丰田生产方式精髓-杜绝浪费

热门文章

  1. 缓存2 动态缓存 memcached
  2. 选择合适的方法调试程序
  3. ANDROID窗体跳转
  4. Java异常的概念和分类
  5. 介绍一种新的激活函数族ACON
  6. TIP 2021论文:多曝光图像融合及超分辨的联合实现
  7. 年薪 66万+,西澳大学招聘 CV DL Research Fellow(研究员)
  8. 手势识别与健身活动识别推理库20bn-realtimenet
  9. 项目合作| 视频监控解决隧道洗车线的安全问题
  10. EfficientDet目标检测谷歌官方终于开源了!