select top 10 * from (select top 40 * from a order by id asc) top_n order by id desc

select top 10 * from (select top 40 * from a order by id asc) top_n order by id desc

题目
select top 10 * from (select top 40 * from a order by id asc) top_n order by id desc
以上这句是你写的,取出表A中第31到第40记录(SQLServer2005,以自动增长的ID作为主键,注意:ID可能不是连续的.)
我想问下能不能将这段代码给讲解下.select top 40是查询前40条数据吧.那么括号外的select top 10是查询40条数据里的前10条.那不是和题目的意思不同了嘛.但我放到数据库里是能查到的.请讲解下,
答案
这个语句第一部分
(select top 40 * from a order by id asc) top_n
查出前40条数据,表的别名为 top_n
再 order by id desc逆序查询出前10条,
也就是40到31条
所以就能取到结果
若还有疑问请直接HI我.
举一反三
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
奥巴马演讲不用看稿子.为什么中国领导演讲要看?
想找英语初三上学期的首字母填空练习……
英语翻译
1,人们染上烟瘾,最终因吸烟使自己丧命.
最新试题
热门考点

超级试练试题库

© 2017-2019 超级试练试题库,All Rights Reserved.