我是Oracle技术的新手。 早些时候,由于对要求的理解不足,我为同一问题发布了2个帖子。

表格1:

MSGID
-----
1,2,3
2,3
4
null
null

表2:

MID   MSGDESC
----  -------
1     ONE
2     TWO
3     THREE
4     FOUR

预期产量:

XCOL     DESC
-----    -----
1,2,3    ONE,TWO,THREE
2,3      TWO,THREE
4        FOUR

我无法满足此要求。 请给我一个解决方案。

注意:表没有任何唯一或主键值。 表1有5000条记录,表2只有80条记录及其说明。

===============>>#1 票数:0 已采纳

create table Table1 (MSGID varchar2(100));

insert into Table1 values ('1,2,3');
insert into Table1 values ('2,3');
insert into Table1 values ('4');
insert into Table1 values (null);
insert into Table1 values (null);

create table Table2 (MID varchar2(100), MSGDESC varchar2(100));

insert into Table2 values ('1','ONE');
insert into Table2 values ('2','TWO');
insert into Table2 values ('3','THREE');
insert into Table2 values ('4','FOUR');

select
  msgid as xcol, 
  "DESC", 
  col1, col2, ..., col12
from
  Table1
  left join (
    select
       msgid,
       wm_concat(msgdesc) as "DESC"
    from
       (
          select
             msgid,
             msgdesc
          from
             (select distinct msgid from Table1 where ...)
             cross join (
                select level as occ from dual connect by level <= 100)
             )
             left join Table2
                on mid = regexp_substr(msgid, '[^,]+', 1, occ)
          where
             occ <= regexp_count(msgid, ',') + 1
          order by msgid, occ
       )
    group by msgid
  ) using (msgid)

  ask by Prasad translate from so

未解决问题?本站智能推荐:

1回复

用于创建逗号分隔记录的Oracle SQL 10g查询

我正在编写用于创建jasper报告的oracle 10g查询。 这是查询- 文章是唯一的,但可以有多个作者(essay_writer_join)。此查询为我提供作者的文章,这些作者之间用逗号分隔。 问题是我需要再添加一个称为“ manager”的列,该列将显示作者的管理员。
1回复

如何在Oracle Forms 10g中创建块框架?

使用块向导在Oracle表单中创建新块时,默认情况下会在其周围绘制一个框架,框架中的块名称或描述。 有人知道如何在已经存在的块上创建一个框架吗? 到目前为止,我唯一想到的就是复制一个现有的框架,然后重新定位,调整大小并重命名它以满足我当前的需求。 如果我能创造一个就好了。 谢谢,
5回复

如何在Oracle 10g中重命名表列

我想知道:如何重命名Oracle 10g中的表列?
1回复

如何在Oracle 10G的表中插入多行? [关闭]

即时通讯创建一个脚本,可以一次将多个数据插入到表中。 但是上面的插入命令给出了错误 ORA-00911:字符无效 上面的代码正确无误,请帮助我找出答案。
2回复

如何在oracle 10g中缓存函数的查询结果?

我正在使用oracle 10g。 我在包中有以下函数,它将在包中多次调用。 相反,我想维护“功能结果缓存”(11g可用),我将在执行查询之前首先在缓存中查找。 这可能与10克或我必须选择其他一些选项来实现它吗?
1回复

如何在Oracle 10g中插入加密数据

我以加密格式插入数据,因此我在Oracle中创建了一个钱包。 但是当我创建表格然后给出错误 ORA-00439:功能未启用:透明数据加密 那么如何解决这个错误呢?
2回复

如何在Oracle 10g中使用成员

我想检查一个元素是否是sys.odcinumberlist varray的成员。 但这不起作用... 我的代码有什么问题? 该代码引发的错误是
1回复

以Oracle形式10g发布显示记录

我是Oracle Form和pl / sql的新手。 这是我的问题在我的表单中,我得到了3个数据块,这些数据块显示了从名为BOS_M_HOLIDAY的表中检索到的记录。 但是不知何故,循环后只有最后一个记录显示在每个数据块中。 我检索记录的方式是使用PRE-FORM触发器和WHEN-TIM
1回复

如何在Oracle 10g中进行透视

考虑以下 样本输入 期望的输出 下面的SQL SERVER 2005查询将完成工作 我想在Oracle 10g中执行相同的操作。 这个怎么做? 这可能是微不足道的,但是由于我是Oracle的新手,所以我正在寻求帮助。 谢谢
1回复

Oracle 10g中的动态SQL查询

下午全部 我是Oracle和SQL的新手,但是我使用以下已创建的代码进行查询。 我目前正在使用Oracle 10g。 我只是想知道是否有人可以帮助我使此代码动态化,而不是硬编码。 我所拥有的代码只是看一个记录用户活动的表。 然后,我实质上计算了每个用户/ PC拥有的记录数,并将