在PostgreSQL中将表中的NULL替换为<SOME VALUE>

use*_*888 3 sql postgresql null

在寻找在Stack Overflow上将表中的NULL值替换为0的方法时,似乎发现许多线程都指向使用COALESCE函数。例如,postgresql返回0,如果返回值为null

我知道COALESCE函数会为您的特定查询“替换”空值;但是,桌子本身保持不变。也就是说,如果您在没有COALESCE的单独查询中再次查询该表,则空值仍将存在。

我的问题是,有没有办法让我用指定的值(例如0)永久替换表中的NULL值,这样我就不必在每个查询中都使用COALESCE?作为我问题的扩展,修改原始表而不是在查询中进行操作是否被视为不好的做法?

小智 5

您可以执行UPDATE:

UPDATE table SET col1 = 0 WHERE col1 IS NULL;
Run Code Online (Sandbox Code Playgroud)

这应该有效地更新表上所有匹配的记录

  • @ phao5814应该为“ IS NULL” (2认同)