我在内部加入表和视图时遇到了一些问题.该视图pageviewforum的列forumn_no varchar2和列totalcount是每个论坛中的总浏览量计数.
另一张表是
forum:forum_no char(6), forumname varchar2(50)
我想输出totalcount与forum_no和论坛的名称,但它不工作.
select forum.forumname, totalcount from pageviewforum
inner join forum on pageviewforum.forum_no= forum.forum_no;
Run Code Online (Sandbox Code Playgroud)
以上查询返回无数据的错误消息.我试图看看是什么出来的
select forum.forumname, totalcount from pageviewforum
inner join forum on pageviewforum.forum_no > forum.forum_no;
Run Code Online (Sandbox Code Playgroud)
并且数据出来了.我尝试使用,但它也没有数据.我能做什么?
由于您要使用varchar2列加入不确定大小的char(6)列,因此可能会因此而遇到差异.如果这些列包含数字,为什么不使用数字类型(如INTEGER)来保存值?从长远来看,它会更可靠.通常,连接柱在相同类型时最可靠地工作.当它们属于不同类型时,您必须担心这两种类型是否足够兼容以及它们是否合理地进行比较.
假设:特别是,CHAR(6)柱是空白填充到全长; 除非DBMS剥离那些尾随空白,否则你可能永远不会得到一个CHAR(n)和一个VARCHAR(n)来比较相等,除非所有n个字符都在使用中.该>比较有效,因为毛坯关系平等,但大于或小于仍然可以想出一个答案.
观察: