我有一个表,对于一列表,我需要将null
的值替换为另一列中的值,而不是基于与同一表的另一列匹配的值。
表示我正在使用主键t1
:
c1
c1 c2 c3
--------------------------
1 a null
23 b null
2 c 1
所以我希望我的结果为:
c1 c2 c3
------------------------------
1 a null
23 b null
2 c a ---->(means the 1 in column c3 is replaced by column c2's
value whose c1's value is 1)
答案 0 :(得分:1)
你走了:
update t1 set y.c3 = x.c2
from t1 x inner join t1 y on x.c1 = y.c3;
答案 1 :(得分:1)
试试这个:
SELECT t.c1,t.c2,(SELECT a.c2 FROM t1 a WHERE a.c1=t.c3) FROM t1 t