我在Oracle10g10.2.0.4服务器中遇到了这个问题,在执行下面的查询时,它的显示错误ORA-00904:"A","TEMP_APPL_ID“:无效标识符 FROM PO_AGENCY_TEMP b where a.temp_appl_id = b.temp_appl_id));
此查询在oracle 10g 10.2.0.
问题:使用公共表表达式(WITH子句)比较两个SELECT查询的结果,忽略了行的顺序。First approach:在Oracle的set操作符中使用行集的对称差异(Q1和Q2比较查询):SELECT * FROM A MINUS SELECT* FROM BSELECT * FROM B MINUS SELECT * FROM A;
这种方法有一个缺点--我们不能替代在WITH之前有SELECT子句的查询。第二种方法:实现对称差分而不使用WITH
Oracle对userfunction(a)使用索引,这需要很长时间。这是一个动态查询形式,可以有另一个条件,必须在abc上使用索引,所以我不想使用no_index提示。whereand exists (select 1 from tab where t.abc='' ...etc)我试图通过将函数移到嵌套查询来重写带有嵌套查询的查询,但是oracle正在重写,并且仍然