2013-02-13 106 views
1
ID DEPT 
user1 A 
user1 B 
user1 C 
user2 A 
user2 B 
user3 A 
user4 A 
user4 B 
user4 D 
user4 E 

我想帶一個表,如上面的一個,查看哪些用戶擁有部門A,但不是C,並插入C,反之亦然(有無C,不是A,插入新行與A)插入行與多個鍵

例如在上面的表中,User4將被識別爲具有A但不是C,因此將插入具有user4和dept C的新行。

+0

請使用代碼標籤來明確您的關聯代碼/數據樣本的格式 – amphibient 2013-02-13 23:07:55

+2

您的問題到底是什麼? – 2013-02-13 23:08:40

+0

表中的列是什麼?從您提交的內容中,我無法確定列的內容和值是什麼 – amphibient 2013-02-13 23:08:49

回答

0
INSERT INTO tablename(Id, Dept) 
SELECT COALESCE(A.ID, C.ID) 
, CASE 
    WHEN A.ID IS NULL THEN 'A' 
WHEN C.ID IS NULL THEN 'C' 
END 
FROM 
    (select id 
    from tableName 
    WHERE Dept = 'A') A 
FULL OUTER JOIN 
    (select id 
    from tableName 
    WHERE Dept = 'C') C 
    ON A.Id = C.Id 
WHERE 
    A.Id IS NULL OR C.Id IS NULL