sql之对top语句理解

起因

事情的起因是在群里和大佬讨论问题,讨论select top x后加*的问题,这时突发奇想,想搞清楚这个看起来在sql中略显突兀的语句结构,就有了这篇文

先看例子

select * from 表 + 筛选条件

select top x   *  from+筛选条件  

再来比较一个语句

select    *   from     表    where   id = (select id from 表  where 性别='男')

个人理解

按照正常逻辑处理语句时从右到左,都可以理解为向左赋值的过程,或者说数据流向为向左,最后交给最左边的select,这样理解的话,通过top语句筛选的话,就行编程语句一样,必须找一个变量来接收数据,然后才能进一步处理,*的作用就是接受处理过的语句

事情过后翻到大神的理解(一语点拨局中人)

当然大神对这个语句的理解就更深刻了些,大神的想法是:把select top x 与select 放在相同地位

当时看到大神的理解时非常有感触,select语句在我们脑海里已经根深蒂固了,有时候恰恰需要改变固化的思想,才能看到问题的本质,用另一种说法就是降维打击

posted @ 2021-03-05 08:23  l1j1ng  阅读(308)  评论(0编辑  收藏  举报