今天说一下Top ~

Top这个关键字,大家都不陌生~尤其是很多时候打开SSMS的时候右键表名,选择前1000行的时候,就可以见到编译出来的语句 Select top 1000 XXX from XXX

好~我们先看看Top 的语法

[
    TOP (expression) [PERCENT]
    [ WITH TIES ]
]Top 关键字支持实际行数 Top 50 查询前50行,使用这种模式的话,Top 后面必须跟一个整数(传入浮点是会报错的)    或者使用 Top 10 PERCENT 查询前10%的数据,使用这种方法的话,Top 后面可以跟一个浮点,但是会向上取整。
WITH TIES 的选项则表示是否将与最后一行排序一样的行显示出来。使用这个选项将有可能得出超出 Top 关键字之后所写入的数量。
对于select 这个是控制返回多少行数据,而对于insert ,update ,delete,merge的话,则是控制要操作多少行的数据。官方文档说建议使用Top的时候始终配合Order By来使用。我的理解是这样纸的。有一个语句select top 5 AA,BB,CC    from Tablea
这种Top 是随机排序的,随机的依据取决于当时的查询计划是怎么执行,如果没有使用Order By的话,有可能当数据量有所变化,那就会出现不同的结果。所以如果需要一个稳定的结果,那么建议如果使用Top关键字,那么后面就配套一个Order By 结果才稳定

Select :Select top (50) * from Table --里面的50可以是支持使用变量来传值

Insert Insert 的用法主要使用insert top (5) into table (XXX) values (XXX) --这里面的顺序与Values 后面跟的顺序一致如果用Insert Select 的时候,则与Select 的Top 用法一致

Update /Delete /Merge :Update/Delete Top (50) 

如果使用此方式,那么将会是随机更新/删除,也有可能引起预想不到的结果。然而Update/Delete 却是不支持Order by的。如果需要稳定的排序,可以采取子查询先把需要更新/删除的结果集查询出来。

update a set XX=AA  from (select top 5 * from table order by BBB) a

可以考虑这种处理方法。

PS:另外我觉得Top 这个关键字有一个比较好的应用场景,就是当需要一次性处理大量数据的时候,可以借助Top关键字来分批处理。避免因为一次处理过量的数据引起大量的事务日志。也比较安全
时间: 2024-08-07 21:20:55

今天说一下Top ~的相关文章

排序算法Java版,以及各自的复杂度,以及由堆排序产生的top K问题

常用的排序算法包括: 冒泡排序:每次在无序队列里将相邻两个数依次进行比较,将小数调换到前面, 逐次比较,直至将最大的数移到最后.最将剩下的N-1个数继续比较,将次大数移至倒数第二.依此规律,直至比较结束.时间复杂度:O(n^2) 选择排序:每次在无序队列中"选择"出最大值,放到有序队列的最后,并从无序队列中去除该值(具体实现略有区别).时间复杂度:O(n^2) 直接插入排序:始终定义第一个元素为有序的,将元素逐个插入到有序排列之中,其特点是要不断的 移动数据,空出一个适当的位置,把待插

关于js中window.location.href,location.href,parent.location.href,top.location.href的用法

关于js中window.location.href,location.href,parent.location.href,top.location.href的用法 "window.location.href"."location.href"是本页面跳转. "parent.location.href" 是上一层页面跳转. "top.location.href" 是最外层的页面跳转. 举例说明: 如果A,B,C,D都是html,D

2016年 CSS 库、框架和工具新生榜 TOP 50

看看 CSS 在过去几年的巨大变化和快速发展,你就不会对它今年的开源工具大产量感到惊讶了.这些 CSS 库.框架和工具的建立不仅给我们提供了学习的视角,更给我们的工作与生活带来了便利. 本文精选了 50 款 2016 年发布的 CSS 库.框架和工具供大家享用,希望它们对您有所帮助. 分类快速预览:CSS 库,CSS Spinners,CSS 图像特效,CSS 实用程序,设计指南工具,响应式邮件与通讯列表框架,Flexbox 布局工具和框架,CSS 布局框架和 material design 框

error: bad top line in state file /var/lib/logrotate.status 解决方法

发现日志切割并没有按计划执行,后来手动强制执行时,发现如下报错: [[email protected] logrotate.d]# logrotate -f httpd error: bad top line in state file /var/lib/logrotate.status [[email protected] logrotate.d]# 解决访求: 删除/var/lib/logrotate.status 这个文件即可解决. 解决后,最好再运行一下logrotate -f /etc

2015 年度新增开源软件排名 TOP 100

收藏了,以备不时之需,选型的时候,可以优先从其中考虑了. 2015 年度新增开源软件排名 TOP 100 http://www.oschina.net/news/69808/2015-annual-ranking-top-100-new-open-source-software

进程查看及命令使用-htop/dstat/top/ps命令

进程是linux用来表示正在运行的程序的一种抽象概念,程序内存的使用,处理器时间和I/O资源就是通过这个对象进行管理和监视的. 一个程序要先运行在用户空间,当他需要去使用硬件资源的时候,就不得不去调动内核才能取得使用权,这时候调动内核,进入内核空间,当内核处理完毕需求之后,将指令返回给用户,一个调用完成. 进程会以时间片段在CPU运行的,CPU以一根时间线被划分成无数个片段:当一个进程运行到某个阶段,需要暂时终止的时候,需要保存一个进程运行的现场,叫保存现场:执行到某片段的时候,需要中断,当再需

linux命令--top命令&free命令

top命令是用来查看系统性能的工具,能够实时显示各个进程的状况,包括进程ID.内存占用率.CPU占用率等. top - 23:12:04 up 79 days,  8:14,  1 user,  load average: 0.00, 0.01, 0.05 Tasks: 573 total,   2 running, 571 sleeping,   0 stopped,   0 zombie Cpu(s):  0.2%us,  0.4%sy,  0.0%ni, 99.5%id,  0.0%wa,

Js中的window.parent ,window.top,window.self详解

在应用有frameset或者iframe的页面时,parent是父窗口,top是最顶级父窗口(有的窗口中套了好几层frameset或者iframe),self是当前窗口, opener是用open方法打开当前窗口的那个窗口. window.self 功能:是对当前窗口自身的引用.它和window属性是等价的. 语法:window.self 注:window.self.window.self是等价的. window.top 功能:返回顶层窗口,即浏览器窗口. 语法:window.top 注:如果窗

查看系统资源(iostat,top,vmstat,mpstat)

维护服务器的时候,要经常查看系统资源的,可以了解一下服务器的运行情况.系统优化时,比如使用memcache时,我要决定分配多少内存给他合适呢,mysql的innodb的参数优化也要考虑到内存使用率,i/o的频繁程度啊,如果使用apache的话,要启动多少个httpd比较合适呢,如果数据库的数据太大,我要看看是不是增加磁盘呢等等,这个时候,我们要知道,有多少资源可用,才能更好的优化我们的系统. 1.top命令查看cpu,mem的使用情况 top - 13:54:34 up  4:29,  1 us

【转】每天一个linux命令(44):top命令

原文网址:http://www.cnblogs.com/peida/archive/2012/12/24/2831353.html top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.下面详细介绍它的使用方法.top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列