
第一張表

第二張表

最終需求

模擬創建語句:
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的方式實現該功能。
分享標題:sql將代碼替換成碼表相對應的翻譯
分享地址:
http://www.xueling.net.cn/article/pecodo.html