2016-09-27 46 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有這個限制) –