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 再看看查询结果:
转载于:https://www.cnblogs.com/melodygkx/p/10169122.html
SQL语句中的TOP(expression) [PERCENT] [WITH TIES] 用法相关推荐
- SQL语句中order_by_、group_by_、having的用法区别
order by 从英文里理解就是行的排序方式,默认的为升序. order by 后面必须列出排序的字段名,可以是多个字段名. group by 从英文里理解就是分组.必须有"聚合函数&qu ...
- mysql中sql语句中常见的group_concat()函数意思以及用法,oracle中与其一样的功能函数是wmsys.wm_concat()
1.group_concat(),手册上说明:该函数返回带有来自一个组的连接的非NULL值的字符串结果.比较抽象,难以理解. 通俗点理解,其实是这样的:group_concat()会计算哪些行属于同一 ...
- SQL语句中的case when,decode的用法
以下面的表为例: 用 case when 将人物战斗力筛选成不同的级别: 用法:case when 字段 = '值1' then '结果1' when 字段 = '值2' then '结果2' els ...
- Sql 语句中 IN 和 EXISTS
原文链接: (2条消息)Sql 语句中 IN 和 EXISTS 的区别及应用 - jcpp9527的博客 - CSDN博客 https://blog.csdn.net/wqc19920906/art ...
- Mybatis 源码探究 (4) 将sql 语句中的#{id} 替换成 ‘?
Mybatis 源码探究 (4) 将sql 语句中的#{id} 替换成 '? 出于好奇,然后就有了这篇文章啦. 源码给我的感觉,是一座大山的感觉.曲曲折折的路很多,点进去就有可能出不来. 不过慢慢看下 ...
- oracle不使用游标,oracle – 为什么我们不能在动态SQL语句中使用强引用游标?
这是一个带有强类型引用游标的过程: SQL> create or replace procedure p1 is 2 type dept_rc is ref cursor return dept ...
- SQL点滴35—SQL语句中的exists
原文:SQL点滴35-SQL语句中的exists 比如在Northwind数据库中有一个查询为 SELECT c.CustomerId,CompanyName FROM Customers c WHE ...
- sql语句中case_SQL中的CASE语句
sql语句中case The case statement in SQL returns a value on a specified condition. We can use a Case sta ...
- SQL语句中,为什么where子句不能使用列别名,而order by却可以?
当我们使用某个表达式作为输出的一列时,我们无法再Where条件中直接使用该列作判断条件. 例如下面的SQL语句: select id, (c1 + c2) as s from t1 where ...
最新文章
- The only supported ciphers are AES-128-CBC and AES-256-CBC
- jQuery 表格插件
- Linux下mysql 5.x得到root密码后的另外一种利用方式
- fopen_s不接受两个参数_如何利用SPC来管理制造过程,不懂SPC还敢混“质”场?
- ElasticSearch 文档的添加、获取、更新、删除_05
- 究竟哪种取数据的方式最快?
- 小猿圈python之python期末考试测试题(二)_小猿圈python之练习题
- JSK-372 图案输出【入门】
- devc编程c语言,【电子部新手教程之C语言入门篇】Dev-cpp安装与第一个程序
- i.MX283A移植mt7601--小米随身wifi
- 劳易测BPS300i SM 100条码定位
- netty系列之:真正的平等–UDT中的Rendezvous
- 137、易燃固体的分级
- 【Linux】Ubuntu运行环境搭建
- 如何实现一个地图库封装,可以快速切换地图
- String Ioc简介
- 信捷pLC C语言错误格式,信捷PLC常见问题及处理方法大全
- java 405_Http状态405-方法不允许
- web页面开发,一个前端妹子的面试笔记,知乎上已获万赞
- 丰田生产方式精髓-杜绝浪费