我是靠谱客的博主 虚幻衬衫,最近开发中收集的这篇文章主要介绍关于在join中出现ORA-00918: 未明确定义列的解决办法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

/*关于在join中出现ORA-00918: 未明确定义列的解决办法*/
/*关于join和where表连接问题,需要在使用join时需要使用列的别名,避免相同列名的出现。*/
--以下为简要测试过程:
--测试对象如下:
SQL> select * from oraking1;
        ID NAME
---------- --------------------
         1 oraking
         2 oraking2
         3 oraking3
SQL> select * from oraking2;
        ID NAME
---------- --------------------
         3 yallonking3
         2 yallonking2
         1 yallonking1
--使用inner join进行不存在相同列名时是成功的。如下:
SQL> select t.id from oraking1 s inner join (select id,name from oraking2) t on s.id=t.id;
        ID
----------
         3
         2
         1
--使用where进行不存在相同列名时是成功的。如下:
SQL> select t.id from oraking1 s , (select id,name from oraking2) t where s.id=t.id;
        ID
----------
         3
         2
         1
--使用inner join进行存在相同列名(name)时是不成功的。如下:
SQL> select t.id from oraking1 s inner join (select id,name,name from oraking2) t on s.id=t.id;
select t.id from oraking1 s inner join (select id,name,name from oraking2) t on s.id=t.id
*
ERROR at line 1:
ORA-00918: 未明确定义列
--使用where进行存在相同列名(name)时是成功的。如下:
SQL> select t.id from oraking1 s , (select id,name,name from oraking2) t where s.id=t.id;
        ID
----------
         3
         2
         1
--使用inner join进行相同列名(name)重命名后是成功的。如下:
SQL> select t.id from oraking1 s inner join (select id,name,name as name1 from oraking2) t on s.id=t.id;
        ID
----------
         3
         2
         1
总结:在使用join时需要注意列不能重名。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26143577/viewspace-719702/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26143577/viewspace-719702/

最后

以上就是虚幻衬衫为你收集整理的关于在join中出现ORA-00918: 未明确定义列的解决办法的全部内容,希望文章能够帮你解决关于在join中出现ORA-00918: 未明确定义列的解决办法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部