您的位置:首页 > 数据库 > Oracle

将以逗号隔开的字段值转换为对应字典值小记

2017-12-20 13:03 267 查看
首先是在工作中遇到了这样一个需求,就是要将"01,02,03"转化成为其对应的字典值并以逗号隔开。

查询资料后 https://www.cnblogs.com/lovehersister/p/6090338.html
可将“01,02,03”转化为列的形式。

这样就可以用in来做条件查询字典表了。

再加上列转行函数listagg就可以再转回行的形式了,于是有了如下的sql

select listagg(t.dict_name,',') within group(order by dict_value asc) jieguo from 字典表 t where t.dict_type_id='该字段字典表的type值' and t.dict_value in (

select trim(regexp_substr('02,03,04,','[^,]+',1,rownum)) from dual connect by rownum<=length(regexp_replace('02,03,04,', '[^,]', null)))

group by t.dict_type_id;

之后就成功的把“02,03,04”更改为其字典值的拼接了!记录一下

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐