db2递归一个以分隔符隔开的字段

  项目很多业务表中存储的信息都是以逗号分隔的业务数据,在统计、转码的时候很是不便,使用 with X(‘‘,‘‘) as values(‘‘,‘‘) 对结果方便递归操作。db2一个字段由多个数据以逗号分隔,分隔的数据为字典表的code,现在要通过sql将该字段直接转换为字典code对应的name,参考下图:

图1转成图二

 图一

 图二

WITH n
    (
        str,
        ori,
        pos,
        USER
    )
    AS
    (
    VALUES
        (
            concat(‘1,2‘,‘,‘),
            1,
            posstr(concat(‘1,2‘ ,‘,‘), ‘,‘),
            ‘402882775f0e5084015f10cdaa00006a‘
        )
    UNION ALL     SELECT str,
                    pos+1,
                    locate(‘,‘, str, pos+1),
                    USER
                FROM n
                WHERE locate(‘,‘, str, pos+1)>0
                )
SELECT LISTAGG(s.CODE_NAME,‘,‘) WITHIN GROUP(
ORDER BY n.USER)
FROM n,
    SYS_CODE_LIST s
WHERE s.CODE_ID = substr(str,ori,
    CASE pos-ori
        WHEN -1
        THEN 32
        ELSE pos - ori
    END)

原文地址:https://www.cnblogs.com/anyongkang/p/11317071.html

时间: 2024-10-11 00:09:01

db2递归一个以分隔符隔开的字段的相关文章

SqlServer给一个表增加多个字段语法

添加字段语法 alter table table_name add column_name +字段类型+ 约束条件 给一个表增加多个字段: use NatureData go alter table XunHu add MaleCount varchar(50) null, FemaleCount varchar(50) null, SubadultCount varchar(50) null, LarvaeCount varchar(50) null, TraceType varchar(50

一个表中的某字段中所有的数据,复制到另一个表中

项目要求,织梦被黑了,又不太会修复织梦的漏洞.决定换一个自己开发的后台吧!问题来了,织梦中的文章数据要全部拿出来,导入到新的后台中. 因为,现有后台的数据表跟织梦的表的结构完全不一样,再加上织梦用于保存文章是用了,dede_addonarticle,dede_archives,这两个表.现在是要将两个表中有用的字段的数据 复制到一个新的表中的一个字段内. 第一步,同步他们的主键,dede_addonarticle的主键是aid,dede_archives的主键是id 1,一张写好了结构的,没有数

用程序动态控制只有一个或少数几个字段可以改

,-[原创][经验总结]用程序动态控制只有一个或少数几个字段可以改    int ret,j,i;    DictTable           dictTable;    DictField           DictField;    str                 curFieldName;    ;    dictTable = new DictTable(tableNum(yourTableName)); i=dictTable.fieldCnt()-12;//这里系统会包括

C#开发笔记-读取文件,并将文件使用分隔符隔开

//读取报告数据 string data=null; using (System.IO.StreamReader sr = new System.IO.StreamReader(filePath, System.Text.Encoding.Default)) { while ((data = sr.ReadLine()) != null) { // data = sr.ToString(); string[] val=data.Split(','); } } C#开发笔记-读取文件,并将文件使用

VBS获取Ini配置文件一个节点下的所有字段的值

''* 功能:使用VBS读取ini文件中指定节点下的所有值'* 输入参数:inipath :ini文件的地址'*           initypes :ini文件中包含在"["和"]"之间的值'* 返回值:找到的字段的值组成的array'* 编写人:  chenyb'* 编写日期:2008-12-26'* 其他说明:以下只是方法,具体问题具体修改'Function vbsGetIniFields(inipath,initypes) Const ForReading

ThinkPHP 条件是一个表里面的两个字段比较

ThinkPHP 条件是一个表里面的两个字段比较 今天群里有人问,thinkphp框架,条件是一个表里的两个字段,怎么查询. 然后就做了下测试: 比如查询出 手机号就是微信号 的用户: (1)首先,正常的sql语句应该是这样的: SELECT `id`,`name`,`tel`,`weixin` FROM `user` WHERE `tel` = `weixin` 然后在thinkphp框架中测试: (2)当where条件是字符串时,肯定是可以的: M('user')->where('`tel`

编写一个过程将查询的字段和where条件中的字符串值动态调用

以scott用户中的emp表为例,编写一个存储过程查询emp表中某个字段的值,但是要查哪个字段是不确定的,where条件中传入的字符串也是不确定的. DECLARE v_a VARCHAR2(20) := 'sal'; v_sql VARCHAR2(200); TYPE tab_org_name IS TABLE OF VARCHAR2(50); v_org_name_tab tab_org_name; BEGIN v_sql := 'SELECT '|| v_a ||' FROM emp';

SharePoint 要一个多行文本类型字段为特殊类型的链接

1.插入在测试列表中的多行文本字段.名字叫做Content.例如下面的附图: 2.在Content字段里.加入一个Link.例如以下图: 3.尝试输入Notes格式的Link,例如以下图: 4.点击OK的时候.弹出消息框.例如以下图: 5.或许有人说,能够直接编辑多行文本的源码,例如以下图: 6.点击保存以后,用F12工具查看Html元素,例如以下图: 能够看到Href属性,被SharePoint格式掉了. 7.我们的解决方法.是在插入的时候,在notes链接的前面加上http://,例如以下图

C语言-对一个结构体中的字段进行排序

这是帮别人做的一个题目,好久没有接触过C语言了.有点发怵,只是似乎找回点当时学C语言,做课程设计的感觉. 题目:定义一个数组(学生结构体数组),里面包括学号.姓名.身份证和三科学生成绩.要求写一个函数,依据学生不论什么一个字段(如学号.姓名.身份证),进行排序. 源代码: //// stu.cpp : Defines the entry point for the console application. //// // #include "stdafx.h" //----------