使用 PostgreSQL(我使用的是 9.1 版),是否可以通过单个查询对具有另一列值的列值进行大规模更新,但如果另一列值为空,则使用第三列的值,如果第三个没有使用当前日期时间(所有列都有 type timestamp
)
我需要改变
列A 列B 列C 空富吧 空空 baz 空空空
至
列A 列B 列C 富富吧 巴兹空巴兹 quz null null
quz
当前日期时间在哪里。
使用 PostgreSQL(我使用的是 9.1 版),是否可以通过单个查询对具有另一列值的列值进行大规模更新,但如果另一列值为空,则使用第三列的值,如果第三个没有使用当前日期时间(所有列都有 type timestamp
)
我需要改变
列A 列B 列C 空富吧 空空 baz 空空空
至
列A 列B 列C 富富吧 巴兹空巴兹 quz null null
quz
当前日期时间在哪里。
您可以使用
COALESCE()
函数进行更新:COALESCE
将返回您提供的列表中的第一个非空值。可以使用
COALESCE
提供默认值而不是可能的 NULL 值。它是一个可变参数函数,因此它可以采用任意数量的参数。返回值将是第一个非 NULL 参数(如果没有,它仍然返回 NULL)。使用它,您
UPDATE
可能看起来像: