You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL中如何在不修改原表的前提下修改视图内的字段值

实现方案

完全可以实现,PostgreSQL的视图本身就是不修改原表的虚拟表,搭配条件表达式即可满足你的转换需求。

具体SQL代码

假设你的原表名为source_table,创建视图的语句如下:

CREATE OR REPLACE VIEW business_view AS
SELECT
    Col1,
    CASE
        WHEN Col3 = 'B' AND Col2 = -1 THEN 1
        ELSE Col2
    END AS Col2,
    Col3
FROM source_table;

逻辑说明

  • 视图仅做查询映射,不会对原表source_table的任何数据产生修改,完全符合你不改动原表的要求,后续业务或分析场景直接查询business_view即可,使用方式和普通物理表完全一致。
  • CASE条件表达式完全匹配你需要的转换规则:仅当Col3值为B且Col2值为-1时返回1,其余所有场景都返回原表Col2的原值,和你给出的示例转换效果完全一致。

如果后续需要调整视图的转换规则,直接修改上面的CASE逻辑,重新执行CREATE OR REPLACE VIEW语句即可,全程不会触碰原表数据。


内容的提问来源于stack exchange,提问作者Marc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 14:36:06