Oracle 表A上有个字段aa,aa有4种值(1,2,3,4),字段aa如果等于1就查询B1表,

Oracle
表A上有个字段aa,aa有4种值(1,2,3,4),字段aa如果等于1就查询B1表,等于2就查询B2,以此类推,B类表的结构一样,查询B类表是需要带个条件bb=n(对于n的值,每个B类表都是不同的,但是是固定的比如B1的n是23,B2的n是18,B3的n是25,B3的n是31),A表和B表用id关联,最后查询的B类表的数据

工作上的问题,表的结构很乱,我就用字母表示吧
大概就是上面所说的,大神帮我看看怎么写,或者给个思路,Oracle写的sql
最新回答
北橙旧梦

2024-06-24 07:08:15

select t.* from
(select  a.aa,xx,yy,zz,'b1' table_name from  a,b1 where a.aa=b1.id and b1.n=23
union all
select  a.aa,xx,yy,zz,'b2' table_name from  a,b2  where a.aa=b2.id and b2.n=18
union all
select  a.aa,xx,yy,zz,'b3' table_name from  a,b3  where a.aa=b3.id and b3.n=25
union all
select  a.aa,xx,yy,zz,'b4' table_name from  a,b4  where a.aa=b4.id and b4.n=31) t
where t.aa=1或2或3或4

类似这样吧,把要查的所有内容都放到子查询里,子查询是各个查询的union all组合,最后通过aa来判断最后的查询结果。