在Postgresql中如何替换数据库列中行的所有实例?
假设我要用“ 0”替换所有不等于“ 1”,“ 2”的实例。
select regexp_replace(some_field,not in ('0','1','2'),'0') from table_name
不起作用
执行此操作的最佳方法是什么?
答案 0 :(得分:0)
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
如果这不是您所需要的,请提供更多详细信息,包括数据和预期结果。
答案 1 :(得分:0)
您可以为此使用CASE
:
SELECT CASE
WHEN some_field IN ('0',
'1',
'2') THEN some_field
ELSE '0'
END AS some_field_new
FROM test;