这个嵌套两层的sql语句为什么是无效的? selec * from (select top 20 * from (select top 100 * from Concentrator order by 序号 asc) order by 序号 desc) order by 序号 asc这个的代码的基础设想是,先搜索表中前100行,然后把这100行倒序,得到第81-100行的数据,但是此时是逆排的,再把这个结果按升序排一次,结果提示这个语句是无效的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 select * from (select top 20 * from (select top 100 * from Concentrator order by 序号 asc) aorder by 序号 desc)a order by 序号 as要加别名 帮你格式化SELECT * FROM ( SELECT TOP 20 * FROM ( SELECT TOP 100 * FROM Concentrator ORDER BY 序号 ASC ) a ORDER BY 序号 DESC ) a ORDER BY 序号 ASC select * from (select top 20 * from (select top 100 * from BS_EMPL order by SID asc) as a order by SID desc) as a order by SID asc缺少 as a需要给子查询取个别名 楼上两位谢谢,确实是缺少别名的原因,但是为啥需要别名呢?貌似如果我不需要最终结果再次排序的话,只有两层嵌套的话,不用别名也能工作,别名用在这的意义是什么,还是说 ms的sql约定了多层嵌套必须用别名? 因为比如你执行select getdate()的时候,可以看到结果里面是没有别名的,那么当你把这个放到一个嵌套里面的时候,SQLServer就不知道怎么去调用这个东西了,SQLServer要找到一个明确的名字才能用。所以对select和嵌套的东西,显式添加别名是良好的编程规范,且可以减少很多不必要的错误。 select嵌套查询,加别名是一个规则,就相当于外层 从内层的查询结果列 中再进行查询 简单语句 一个用Bulk Insert导入数据时的奇怪问题 大数据量Excel导入SQLServer时,求邹键老大和高手来帮忙. 帮我看看这条SQL语句问题在哪?在线等!!! SQL2000备份文件如何还原到SQL2005中....? 修改记录的编号为重复记录的的编号的较小者,如何用sql语言实现? 这个的SQL语句怎么写 SQL检索当天所有记录 后面时间都是0该如何检索 报错内容,,,,,,,,,,,,,请高手你指点一下,,,是什么问题 挑战你的MSDOS和数据库知识,是高手请进... sqlserver与sqlite sql server 2008 r2登录问题
(select top 20 * from
(select top 100 * from Concentrator order by 序号 asc) a
order by 序号 desc)a order by 序号 as
要加别名
FROM ( SELECT TOP 20
*
FROM ( SELECT TOP 100
*
FROM Concentrator
ORDER BY 序号 ASC
) a
ORDER BY 序号 DESC
) a
ORDER BY 序号 ASC
select嵌套查询,加别名是一个规则,就相当于外层 从内层的查询结果列 中再进行查询