使用SQL 2012
我有两个在M_id上一对一存在的表(两个表中都没有重复),但这些表不是相同的记录,但是定义了一些相同的字段但只是在不同的列中。
我需要进行值检查,如果tableA中的特定单元格中出现“1”,我需要将该字段更新为tableB中的“1”。
实施例
表A
M_id | L1 | L2 | L3
100 | 0 | 1 | 0
表B
M_id | S1 | S2 | S3
100 | 0 | 0 | 0
这里的关系是L2 = S3,所以如果在L2中遇到“1”,我需要将S3更新为“1”。在更新之前,所有tableB值都将为“0”。
其他列需要以与L1 = S2相同的方式进行更新,并且L3 = S1等。
不太确定如何发生这种情况。
谢谢,
MP
答案 0 :(得分:0)
如果我理解你的意思。
WITH cte (
SELECT
a.L2
, b.S3
FROM
tableB b
JOIN tableA a ON a.M_id = b.M_id
WHERE
b.L2 = 1
)
UPDATE cte
SET S3 = L2, S2 = L1, S1 = L3