使用 SQL 中单个列中所有可能的值组合更新 table 中的列

Update a column in a table with all possible combinations of values within a single column in SQL

对于所有可能的组合,如何使用其他列中的值更新 table 中的列?

示例:

COL1 |  COL2 |  COL3 | ClientKey  | MasterKey
-----+-------+-------+------------+------------     
123  |  345  |  678  |  AAA       |   AAA
N/A  |  345  |  678  |  BBB       |   AAA
N/A  |  N/A  |  678  |  CCC       |   AAA
N/A  |  345  |  N/A  |  DDD       |   AAA
123  |  345  |  N/A  |  EEE       |   AAA
123  |  N/A  |  678  |  FFF       |   AAA

第一行填充了所有值,并且有一个键 (ClientKey)。如何使用 ClientKey 列更新 MasterKey 列,检查第一行可能出现的所有可能组合。 'N/A' 值相当于 NULL 值。

假设我理解这个问题,最简单的方法是使用带有自连接的更新语句:

UPDATE t1
SET MasterKey = t0.ClientKey
FROM Table as t0
INNER JOIN Table as t1
    ON  (t0.Col1 = t1.Col1 OR t1.Col1 IS NULL)
    AND (t0.Col2 = t1.Col2 OR t1.Col2 IS NULL)
    AND (t0.Col3 = t1.Col3 OR t1.Col3 IS NULL)
WHERE t0.Col1 IS NOT NULL
AND t0.Col2 IS NOT NULL
AND t0.Col3 IS NOT NULL