问题描述
在Postgresql中如何替换数据库列中行的所有实例?
假设我要用“ 0”替换所有不等于“ 1”,“ 2”的实例。
select regexp_replace(some_field,not in ('0','1','2'),'0') from table_name
不起作用
执行此操作的最佳方法是什么?
解决方法
UPDATE schema_name.table_name SET column_name = '0' WHERE column_name not in ('1','2');
https://www.postgresql.org/docs/12/sql-update.html
如果这不是您所需要的,请提供更多详细信息,包括数据和预期结果。
,您可以为此使用CASE
:
SELECT CASE
WHEN some_field IN ('0','1','2') THEN some_field
ELSE '0'
END AS some_field_new
FROM test;