用于在运行时

时间:2016-09-27 06:26:17

标签: sql oracle

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

1 个答案:

答案 0 :(得分: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值。