2015-09-26 33 views
0

我有一個查詢篩選出的數據看起來類似於:比較,並從單獨的SQL列

select userid, access, childaccess from table 1 

union all 

select userid, access, childaccess from table 2 

它返回一組數據,可以是這樣的:

JSMITH - Admin - View1 

JSMITH - Admin - View2 

JSMITH - Controls - NULL 

JSMITH - View1 - NULL 

JSMITH - View2 - NULL 

我需要比較數據並刪除Access和ChildAccess列之間的任何重複項,以使上述數據看起來像:

JSMITH - Admin - View1 

JSMITH - Admin - View2 

JSMITH - Controls - NULL 

因此我們正在刪除Access項目等於ChildAccess項目的結果。

+0

首先**的MS SQL Server的** **或**的MySQL還是兩者兼而有之? – lad2025

+0

這將是一個查詢MS SQL服務器 – tbaldw02

+0

使用'UNION'而不是'UNION ALL',它將刪除重複 –

回答

0

用途:

WITH cte AS 
(select userid, access, childaccess 
    from table_1 
    union 
    select userid, access, childaccess 
    from table_2 
) 
SELECT * 
FROM cte c 
WHERE NOT EXISTS (SELECT 1 
        FROM cte c2 
        WHERE c2.userid = c.userid 
        AND c2.childaccess = c.access); 
+0

這是完美的!謝謝! – tbaldw02