|
执行SQL语句出现ORA-25154的错误的原因是,在Using子句中的列在select子句的查询列表中使用了表前缀。
因为using子句中的列是两张连接的表中共有的,所以不需要也不能用表前缀指明是哪张表的列。
示例:
SQL> select
c.customer#,o.isbn,b.retail,o.paideach,nullif(paideach,retail)
2 from books b join orderitems o using(isbn)
3 join orders c using(order#)
4 where c.order# in (1003,1007);
select c.customer#,o.isbn,b.retail,o.paideach,nullif(paideach,retail)
from books b join orderitems o using(isbn)
join orders c using(order#)
where order# in (1003,1007);
ORA-25154: USING 子句的列部分不能有限定词
错误存在于o.isbn中.
修改以后正确运行
SQL> select c.customer#,isbn,b.retail,o.paideach,nullif(paideach,retail)
2 from books b join orderitems o using(isbn)
3 join orders c using(order#)
4 where order# in (1003,1007)
5 ;
CUSTOMER# ISBN RETAIL PAIDEACH NULLIF(PAIDEACH,RETAIL)
--------- ---------- ------- -------- -----------------------
1001 8843172113 55.95 55.95
1001 1059831198 30.95 30.95
1001 3437212490 19.95 19.95
1007 3957136468 75.95 72.15 72.15
1007 9959789321 54.50 54.50
1007 8117949391 8.95 8.95
1007 8843172113 55.95 55.95
|
|