这个嵌套两层的sql语句为什么是无效的?
selec * from (select top 20 * from (select top 100 * from Concentrator order by 序号 asc) order by 序号 desc) 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
[解决办法]
因为比如你执行select getdate()的时候,可以看到结果里面是没有别名的,那么当你把这个放到一个嵌套里面的时候,SQLServer就不知道怎么去调用这个东西了,SQLServer要找到一个明确的名字才能用。所以对select和嵌套的东西,显式添加别名是良好的编程规范,且可以减少很多不必要的错误。