SQL语句中如果有order by 后为什么不可以作为字表被其他表查询

2025-01-06 16:58:14
推荐回答(2个)
回答1:

表子查询(也叫派生表)中代表的是一个关系表,而关系表中的行是没有固定顺序的。因此,ANSI SQL不允许在表子查询中包含order by子句。

SQL Server大致遵守了这一规定,但有两个例外:当表子查询中有top或for xml子句时,可以包含order by子句。此时order by子句仅仅是为了筛选数据行,并不用于展示的目的。因此,子查询的结果不能保证是有序的。

回答2:

子查询就不需要做排序