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

PostgreSQL创建视图时替换字符串首个下划线前数字的实现方法

PostgreSQL 多下划线uid字段转换视图实现方案

正确实现SQL如下:

CREATE OR REPLACE VIEW public.v_events AS
SELECT 
    CONCAT(
        (split_part(uid, '_', 1)::INT) * (split_part(uid, '_', 1)::INT) + split_part(uid, '_', 1)::INT,
        SUBSTR(uid, STRPOS(uid, '_'))
    ) AS uid,
    serial_id,
    session_id,
    start_time,
    code,
    event_name,
    end_timestamp,
    temp_code
FROM public.events_data;

实现逻辑说明:

  • 视图是基于基础表查询生成的虚拟表,不支持UPDATE操作,所有字段转换逻辑直接在SELECT语句中完成即可
  • PostgreSQL中^运算符为按位异或操作,计算数字平方直接使用乘法即可,也可替换为pow(split_part(uid, '_', 1)::INT, 2)实现
  • split_part(uid, '_', 1)可以直接提取第一个下划线前的数字内容,计算完成后和第一个下划线及之后的原始内容拼接即可,不受后续下划线数量影响

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 06:09:04