以前没有注意到这个问题,同事问了一个sql,后来检查发现子查询中不能有order by,下面简单的验证下;
SQL> create table aaa(a int);
SQL> create table aaa(a int);
Table created.
SQL> insert into aaa values(3);
1 row created.
SQL> insert into aaa values(4);
1 row created.
SQL> commit;
Commit complete.
SQL>
SQL>
SQL> create table bbb (b int);
SQL>
SQL> create table bbb (b int);
Table created.
SQL> insert into bbb select * from aaa;
2 rows created.
SQL> commit;
Commit complete.
SQL>
SQL> select * from aaa where a in ( select b from bbb order by b); #这个语句是报错的
select * from aaa where a in ( select b from bbb order by b)
*
ERROR at line 1:
ORA-00907: missing right parenthesis
SQL> select * from aaa where a in ( select b from bbb order by b); #这个语句是报错的
select * from aaa where a in ( select b from bbb order by b)
*
ERROR at line 1:
ORA-00907: missing right parenthesis
SQL> select * from aaa where a in ( select b from bbb);
A
----------
3
4
----------
3
4
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26463985/viewspace-712803/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26463985/viewspace-712803/