如何根据某些条件使用SQL从Oracle表中获取记录

时间:2017-04-09 11:23:00

标签: sql oracle

请参阅附图ER图。

我需要编写一个SQL查询来根据条件从2个主表(表A和表B)中获取记录。

条件适用于给定的应用程序(APP_ID):

  • 如果表A Case_Status为True(如果Case_Status =' 00'),则获取所有表A详细信息(例如First_name,{{1} })以及表B中的详细信息(即表{B}中的Last_namePerson_name
  • 否则只是从表A中获取应用程序详细信息(commentsFirst_name等)

表C只是一个主表,它将状态代码存储为' True'或者“假”'在其描述栏中(Status_Id-> 00,表示True,Status_Id-> 01表示False)。

请建议我这个。我想加入两个列并提供数据,但我无法正确地写出条件。

谢谢

enter image description here

1 个答案:

答案 0 :(得分:0)

这有点像黑客......

select a.app_id
        , a.case_status
        , a.first_name
        , a.last_name
        , b.description
        , b.person_name
        , b.comments
from tableA a
left join tableB b
on a.app_id = b.app_id
and a.case_status = '00'

...但是当状态正确时,它会返回tableA中的所有值,以及来自tableB的匹配值。