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
相关产品推荐
相关产品推荐

