oracle 需要联接两个表并在某些条件下显示数据

ifmq2ha2  于 2023-06-22  发布在  Oracle
关注(0)|答案(1)|浏览(119)

有两张tableA桌和B桌
表A:

NAME     SUR        SUB
Rakesh   sharma    Maths
Arti     Agrwal    English
Arti     Sharma     English
yash     gupta     hindi
umir    abdul      Science

表B:

NAME     SUR        SUB
Rakesh   sharma    Maths
Arti     Agrwal    English
Arti     Sharma     English
yash     gupta     hindi
umir    abdul      Science
ramesh   agrahari   science 
piyush   jain        english 
priyam    tiwari     maths

是否编写查询以显示此结果?因为它应该像“SUR应该所有,但包括SUR LIKE 'agr%'也像这样,并忽略表A中没有的数据,与表B相比。
在SUR列中需要显示所有具有相同组合(名称,sur,sub)的记录,并且在表A和表B中存在,而我们加入表。如果我们可以看到有SUR(表A中的Agrwal和表B中的Agrahari),但Agrahari不在表A中,但我们需要显示它,同时在查询中应用SUR,如“Agr%”条件。
其余所有数据也应显示。
最终显示:-

NAME     SUR        SUB
Rakesh   sharma    Maths
Arti     Agrwal    English
Arti     Sharma     English
yash     gupta     hindi
umir    abdul      Science
ramesh   agrahari   science

请帮帮我!!

koaltpgm

koaltpgm1#

我的理解如下:您希望从B中选择与A完全匹配的所有行,或者其SUR以'agr'(或'Agr'等)开头的所有行,即不区分大小写)。
使用UPPERLIKE进行不区分大小写的比较,使用INEXISTS在另一个表中进行查找。

select *
from b
where upper(sur) like 'AGR%'
or (name, sur, sub) in (select name, sur, sub from a);

相关问题