oracle 判断一个字段是不是另一个字段的子集
oracle两张表,判断B表跟C表的关联
两张表 B(id , aid) C(id,aid)B 内容如下 id aid
1 3310401
2 3310201
3 33102
C 内容如下 id aid
1 331040101
2 331040102
3 3310201
现在要B和C通过aid关联,条件是B表的aId (3310401) 跟c表的以(3310401)开头的数据关联,只是列举了三条还有更多,需求如此,高手帮下忙
oracle两张表,判断B表跟C表的关联
两张表 B(id , aid) C(id,aid)B 内容如下 id aid
1 3310401
2 3310201
3 33102
C 内容如下 id aid
1 331040101
2 331040102
3 3310201
现在要B和C通过aid关联,条件是B表的aId (3310401) 跟c表的以(3310401)开头的数据关联,只是列举了三条还有更多,需求如此,高手帮下忙
from b join c on instr(c.aid,b.aid)>0
不知道你具体想要什么样的结果
b.aid=substr(c.aid,1,length(c.aid)-2)
当b的aid和c的aid重复的时候,应该怎么归属?比如上面 c 中 aid 为3310201的,应该归属于 b 中的 2 还是 3 ?
当b的aid和c的aid重复的时候,应该怎么归属?比如上面 c 中 aid 为3310201的,应该归属于 b 中的 2 还是 3 ?
那个是不存在的,我数据可能写的有问题
当b的aid和c的aid重复的时候,应该怎么归属?比如上面 c 中 aid 为3310201的,应该归属于 b 中的 2 还是 3 ?
那个是不存在的,我数据可能写的有问题
b表不会存在那种包含关系
select b.*,c.*
from b,c
where instr(c.aid,b.aid)>0 and b.aid<>c.aid
对表中数据有要求,比如 B 中不能存在包含关系的数据~另外,对于,不存在下级单位的单位是否需要显示?
from b left outer join c on instr(c.aid,b.aid)>0 and c.aid<>b.aid
至于优化,暂时还没想到好的办法……
from b,c where c.aid like b.aid||'%';