oracle之 nvl 和 decode结合使用实例

本文介绍如何通过SQL查询将数字类型的字段映射到其对应的中文名称,包括使用DECODE函数和通过关联数据字典表的方式。

1.表中的WORK_FLOW_TYPE值对应的中文名字不基于数据字典的话,可以用如下sql写法,使用nvl和decode查询出数字值对应的中文名称:

select name,age,
NVL(DECODE(A.WORK_FLOW_TYPE,'1','登记','2','变更','3','取消','4','下放','5','恢复'),' ') as "workFlowTypeName"
from table A

2.如果表中某个字段type(存储的数字类型值 对应数据字典表中的dictId),要获取dictName,则可写如下sql实现:

select name,age,
<![CDATA[
    (SELECT WM_CONCAT(DICT_NAME) FROM SYS_DICT_INFO WHERE DICT_CODE='1003' AND INSTR(A.type,DICT_ID)<>0 ) as "typeName"
]]> 
from table A
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值