将以逗号隔开的字段值转换为对应字典值小记
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”更改为其字典值的拼接了!记录一下
查询资料后 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”更改为其字典值的拼接了!记录一下
相关文章推荐
- [原创]SQL 把表中字段存储的逗号隔开内容转换成列表形式
- SQL_把表中字段存储的逗号隔开内容转换成列表形式
- SQL把中字段存储的逗号隔开内容转换成列表形式
- SQL 把表中字段存储的逗号隔开内容转换成列表形式
- Excel数据字典转换为PDM(且显示表名、字段对应的中文描述)
- SQLSERVER获取排除了text类型的所有字段名以逗号隔开
- 机房收费系统——转换list泛型时,字段名称不对应出现问题
- 使用SQL如何把用逗号等字符隔开的字符串转换成列表
- Linux下使用xargs将多行文本转换成一行并用tr实现逗号隔开
- Oracle将以逗号分隔的数字字符串根据字典表转换为中文字符串
- SQL group BY 合并字段用逗号隔开
- shell获取Hive表字段,转换一行逗号分隔
- 将1234567890转换成1,234,567,890每3位用逗号隔开的形式(百度)
- 参数2字段按逗号拆分,拆分后每个单词对应一行
- PHP正则表达式:将1234567890转换成1,234,567,890 每3位用逗号隔开的形式
- MySQL使用GROUP_CONCAT()函数按ID分组将多条记录的某个字段以逗号或者指定分隔号隔开成一条记录
- 一列保存多个ID(将多个用逗号隔开的ID转换成用逗号隔开的名称)
- oracle数据库中在n个字段值相同时给另一字段值合并用逗号隔开
- sql 拆分 一串用逗号隔开的字段 返回一串用逗号隔开的值
- 一列保存多个ID(将多个用逗号隔开的ID转换成用逗号隔开的名称)