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 を挿入したい、またはその逆 (A ではなく C を持って、A で新しい行を挿入)

たとえば上の表では、User4 は A を持っているが C を持っていないと識別されるため、user4 と部門 C を含む新しい行が挿入されます。

4

1 に答える 1

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
于 2013-02-13T23:13:28.033 に答える