2016-09-27 32 views
-3

我们有一个小的需求,我们需要比较一个主表和一个辅助表。查询将返回结果并包含一个额外的“STATUS”列,它将告诉用户第一个表中的数据是否在第二个表中逐行存在。 我无法确定如何获得所需的结果。用于在运行时创建新列的SQL查询

+0

欢迎来到SO。在这里你可以找到关于[问]和如何构建[mcve]的信息,这可以帮助你改进问题 – Aleksej

回答

2

您未能向我们展示这两个表的结构,因此我假设两个表之间存在(至少)一个公共列,这将允许您加入它们。

select t1.*, t2.*, 
     case 
     when t1.id is null then 'not present in TABLE_1' 
     when t2.id is null then 'not present in TABLE_2' 
     else 'present in both tables' 
     end as status 
from table_1 t1 
    full outer join table_2 t2 on t1.some_id = t2.some_id 

您将需要使用真实列名称而不是some_id。这也假定列some_id将不包含任何两个表中的NULL值。

+0

@MaheswaranRavisankar:你是对的,谢谢(我总是忘记Oracle有这个限制) –