Oracle中施用sys_connect_by_path函数实现行转列
Oracle中使用sys_connect_by_path函数实现行转列
表结构及数据展现

要实现的效果

实现sql:
select booktype ,MAX(sys_connect_by_path(t.bookname, '')) as bookname from(
select a.booktype,a.bookname,row_number() over(PARTITION BY booktype ORDER BY bookname) as rn from a
) t
START WITH rn = 1
CONNECT BY rn = PRIOR rn + 1
AND booktype = PRIOR t.booktype
GROUP BY t.booktype
表结构及数据展现
要实现的效果
实现sql:
select booktype ,MAX(sys_connect_by_path(t.bookname, '')) as bookname from(
select a.booktype,a.bookname,row_number() over(PARTITION BY booktype ORDER BY bookname) as rn from a
) t
START WITH rn = 1
CONNECT BY rn = PRIOR rn + 1
AND booktype = PRIOR t.booktype
GROUP BY t.booktype