假设我有一个如下所示的表:
col_1 | col_2
x | y
null | y
a | b
我可以在查询 中将 null 更改col_1
为x
if吗?y = y
我正在尝试在 SQL 中执行此操作。我想我需要使用 CASE 子句,但不知道该怎么做。
您需要对表本身应用自联接,并在找到匹配项时更新行。
update tablename set
cp.col_1 = pp.Col_1
from tablename cp,
tablename pp where
cp.col_1 = null and
cp.col_2 = pp.col_2
这应该可以解决问题
UPDATE MyTable x1
set col_1 =
(SELECT col_1
FROM MyTable x2
WHERE x2.col_2 = x1.col_2 AND x2.col_1 IS NOT NULL
AND rownum = 1)
WHERE x1.col_1 IS NULL
你可以这样做,但如果不是 null,x 值对于相同的 y 值必须相同
性能很慢,但它只是工作