例1:
select top 100 percent * from paper
order by time desc
例2:
with
t as
(select top 100 percent * from paper
order by time desc)
select * from t
例3:
with
t as
(select top 100 percent * from paper)
select * from t order by time
其中,例1和例3得到的结果一样,但是例2得到的结果就没有对时间进行排序,
求大神看到了解释一下,最好能告诉我原理。。。
1和3都是 外层最后 得出结果集的 排序,而第二种是 内层 嵌套的,已经被筛选了一下,最后 还得看外层的得出的结果集
写的顺序:select ... from... where.... group by... having... order by..
执行顺序:from... where...group by... having.... select ... order......
答案就在这里:sql语句select group by order by where一般先后顺序
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?
猜想:
with
t as
(select top 100 percent * from paper
order by time desc)
select * from t
select top 100 percent * from paper
order by time desc
这句,已经对里面的结果排序了,然后再执行select * from t的时候,又对里面的数据默认进行了默认的排序,所以。。。
等待大婶粗现
例一和例三是外层排序后查询出结果,而例二是内层排序后,然后执行外面时,是默认的排序!