SELECT * from t_user where id in (select id from t_user order by id)
[Err] ORA-00907: 缺失右括号
SELECT * from t_user where id in (select id from t_user )
这样就可以?
求原理!!!!
出于效率,ORACLE会对IN子查询做DISTINCT,而DISTICT本身就要ORDER,且是ASC方式,所以不再支持加ORDER BY子名。
就是没有意义。。。所以不给加
本文探讨了Oracle数据库中使用IN子查询时的特殊情况,即不允许在子查询中使用ORDER BY子句的原因。文章解释了这一限制背后的原理:由于Oracle会对IN子查询自动应用DISTINCT操作,并默认采用ASC排序,因此额外的ORDER BY子句变得多余甚至可能导致错误。

被折叠的 条评论
为什么被折叠?



