【小计】PostgreSQL实现Oracle的decode函数功能
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,create or replace function decode(variadic p_decode_list text[])returns text as$$declare -- 获取数组长度(即
千家信息网最后更新 2025年01月20日【小计】PostgreSQL实现Oracle的decode函数功能
create or replace function decode(variadic p_decode_list text[])returns text as$$declare -- 获取数组长度(即入参个数) v_len integer := array_length(p_decode_list, 1); -- 声明存放返回值的变量 v_ret text;begin /* * 功能说明:模拟Oracle中的DECODE功能(字符串处理, 其它格式可以自行转换返回值) * 参数说明:格式同Oracle相同,至少三个参数 * 实现原理: 1、VARIADIC 允许变参; 2、Oracle中的DECODE是拿第一个数依次和之后的偶数位值进行比较,相同则取偶数位+1的数值,否则取最后一位值(最后一位为偶数为,否则为null) */ -- 同Oracle相同当参数不足三个抛出异常 if v_len >= 3 then -- Oracle中的DECODE是拿第一个数依次和之后的偶数位值进行比较,相同则取偶数位+1的数值 for i in 2..(v_len - 1) loop v_ret := null; if mod(i, 2) = 0 then if p_decode_list[1] = p_decode_list[i] then v_ret := p_decode_list[i+1]; elsif p_decode_list[1] <> p_decode_list[i] then if v_len = i + 2 and v_len > 3 then v_ret := p_decode_list[v_len]; end if; end if; end if; exit when v_ret is not null; end loop; else raise exception 'UPG-00938: not enough args for function.'; end if; return v_ret;end;$$ language plpgsql;-- 测试1select decode('_a','_aa', 'x') a3, decode('_a','_aa', 'x', 's') a4, decode('_a', '_aa', 'x', '_b', 's') a5, decode('_b', '_aa', 'x', '_b', 's') a5, decode('_a', '_aa', 'x', '_b', 's', 'o', 'x', 'tt') a6;-- 测试2with xx as( select 'M' sex union all select 'F' sex union all select 'X' sex union all select 'Z' sex union all select '' sex)select sex, decode(sex, 'M', '男', 'F', '女', decode(sex, 'X', '变性', '其它')) from xx;
相同
数位
个数
参数
功能
三个
数值
格式
测试
偶数
原理
变量
字符
字符串
数组
长度
变性
处理
函数
小计
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
京东用户数据库能爬虫吗
网络安全法 持证上岗
温州制造软件开发流程
青云服务器管理口用户密码
指悦网络技术有限公司招聘
2021年十大网络技术趋势
郑州亨瑞软件开发公司官网
北京11选5怎么看数据库
开启代理服务器怎么关
服务器的防火墙作用
数据库计算机二级选择题
番禺租房软件开发
如何查询u8数据库端口号
少年网络安全培训
计算机网络技术的职业道德
肥东网络技术服务哪家好
丰县爆炸网络安全
济南软件开发工资一般多少知乎
电脑软件开发o
互联网教育科技人工智能
数据库创建删除女团员
服务器里边的数据怎么隐藏起来
服务器电脑和普通电脑配置
软件开发专业难度
好玩的服务器网易mc
数据库正在还原
南邮网络安全复试
木瓜互联网科技手抄报模板高中
天津新一代网络技术
专运中心网络安全管理办法