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语句在我们脑海里已经根深蒂固了,有时候恰恰需要改变固化的思想,才能看到问题的本质,用另一种说法就是降维打击
作者:lijing
若标题中有“转载”字样,则本文版权归原作者所有。若无转载字样,本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.