
正文
oracle交集表怎么看 oracle 取交集函数
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
oracle求两表的交集和差集,和oracle的intersect,minus不一样
肯定不一样
a表有三个b,B表有两个b,那么这些b之间有什么区别吗?明显没有,所以在minus时,系统会认为a表的三个b,和b表的任何一个b都是形同的。所以minus时出来的应该是ade三行。
同理,交集的时候出来的应该是三个b。
如果看不懂,那么就这么看,A表有10列数据,有两行(每行10列)内容完全一样。
B表有5行数据,每行十列,有一行与“某表”重复的两行一致。
现在如果求交集,A表重复的两行,和B表的这一行都是有交集的,那么怎么显示,怎么去判断,这两行中的哪一行与B表的那一行是交集,另外一个不是交集?
再没有特定标志的前提下,我们不能判断,所以我们只能说两行都是交集。补集的时候是一样的,A表这两行都与B表的这一行相同,那么怎么确定哪一行应该是交集,哪一行是补集?
这个和我们平时说的集合概念不一样,集合是不能出现重复的元素的,你这里有重复的元素(a表的三个b,B表的两个b),所以应该是多重集的概念。
当然真实的环境中,基本上不会出现多重集,因为数据本身就有互异性,两条相同的数据没有意义。当然不排除数据库设置不合理导致的这种情况发生,不过那只能说设计数据库的人好去好好的再学一学范式了。
相关问答
Q1: oracle数据库中怎么查询交叉表?
select 地区名称 地区oracle交集表怎么看,month(日期)+'月'+day(日期)+'日' 日期oracle交集表怎么看,
sum(case when year(日期)=2010 then 日销量 end) 2010年oracle交集表怎么看,
sum(case when year(日期)=2011 then 日销量 end) 2011年oracle交集表怎么看,
sum(case when year(日期)=2012 then 日销量 end) 2012年oracle交集表怎么看,
sum(case when year(日期)=2013 then 日销量 end) 2013年
from 销量表,地区表
where 销量表.地区id=地区表.id
group by 地区,month(日期)+'月'+day(日期)+'日'
Q2: Oracle查询2张表差集、交集、并集
select 字段1 from 表1 minus select 字段1 from 表2
select 字段1 from 表1 intersect select 字段1 from 表2
select 字段1 from 表1 union all select 字段1 from 表2
关于oracle交集表怎么看和oracle 取交集函数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







