oracle 行转列,多行转列

问题描述:

   应公司要求,设计功能,一个ID,对应不同的值,展示的时候不同的值拼接展示,如何实现;

解决思路:

    1) 拼接字符串,想到了 oracle  Function(),这样肯定能实现,但是比较麻烦;

     2) Oracle 自带的一个函数 wm_concat 函数 非常给力;

上代码


--测试表1
create table ceshi1(ID varchar2(10),MS varchar2(100));
--测试表2
create table ceshi2(ID varchar2(10),MS_1 varchar2(100));




insert into ceshi1 (ID, MS)
values ('1', '测试');

insert into ceshi1 (ID, MS)
values ('2', '测试2');


insert into ceshi2 (ID, MS_1)
values ('1', '展示1');

insert into ceshi2 (ID, MS_1)
values ('1', '展示2');


---强大的功能即将展示

SELECT T.ID,
       (SELECT WM_CONCAT(T2.MS_1) FROM CESHI2 T2 WHERE T2.ID = T.ID) AS TT
  FROM CESHI1 T

搞定!收工~

猜你喜欢

转载自blog.csdn.net/qq_30125555/article/details/84062125
今日推荐