欢迎光临
我们一直在努力

sql 将代码替换成码表相对应的翻译

第一张表

第二张表

最终需求

模拟创建语句:
create table a (id number,name varchar2(30),code varchar2(30));

insert into a values (1,’czb’,’A01,A02,A03′);

select * from a;
create table  b (code varchar2(30),codename varchar2(30));
insert into b values (‘A01′,’我’);
insert into b values (‘A02′,’爱’);
insert into b values (‘A03′,’你’);

select * from b;

sql语句写法:

select 
id,name,code,
(select LISTAGG(codename, ‘, ‘) WITHIN GROUP (ORDER BY codename)

          from b

         where code in

               (SELECT regexp_substr(a.code, ‘[^,]+’, 1, LEVEL) 

                  FROM dual

                CONNECT BY LEVEL < length(a.code)))

  from a;

当然不止这一种写法,也可以使用plsql的方式实现该功能。

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。