Sql 插入具有多个键的行
我想取一个像上面这样的表,看看哪些用户有dept a但没有C,然后插入C,反之亦然(有C,没有a,用a插入新行)Sql 插入具有多个键的行,sql,insert,Sql,Insert,我想取一个像上面这样的表,看看哪些用户有dept a但没有C,然后插入C,反之亦然(有C,没有a,用a插入新行) 例如,在上表中,User4将被标识为具有A而非C,因此将插入一个包含User4和dept C的新行。请使用code标记以清晰地格式化您的相关代码/数据示例您的问题是什么?表中的列是什么?从您提交的内容来看,我无法判断列和值是什么。请编辑您的问题,以包括您解决问题的一次或多次尝试。非常感谢。 ID DEPT user1 A user1 B user1 C user2
例如,在上表中,User4将被标识为具有A而非C,因此将插入一个包含User4和dept C的新行。请使用code标记以清晰地格式化您的相关代码/数据示例您的问题是什么?表中的列是什么?从您提交的内容来看,我无法判断列和值是什么。请编辑您的问题,以包括您解决问题的一次或多次尝试。非常感谢。
ID DEPT
user1 A
user1 B
user1 C
user2 A
user2 B
user3 A
user4 A
user4 B
user4 D
user4 E
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