sql 將程式碼替換成碼錶相對應的翻譯

abin1703發表於2017-09-12




第一張表

第二張表

最終需求




模擬建立語句:
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的方式實現該功能。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30345407/viewspace-2144821/,如需轉載,請註明出處,否則將追究法律責任。

相關文章