oracle行转列的通用实现

本文介绍了一种在Oracle数据库中实现行转列的通用方法,通过定义类型、创建函数和使用TABLE函数来将逗号分隔的字符串转换为表格形式的数据。此方法适用于需要将一列中的多个值拆分为多行的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[color=green]--oracle行转列的通用实现:
--将'A,B,C'转换为:
--A
--B
--C [/color]


--实现方法
--1.定义一个类型
create type type_row is table of varchar2(200);

--2.创建函数
create function split(p_list varchar2)
return type_row
pipelined IS
l_idx pls_integer;
v_list varchar2(50) := p_list;
begin
loop
l_idx := instr(v_list, ',');
if l_idx > 0 then
pipe row(substr(v_list, 1, l_idx - 1));
v_list := substr(v_list, l_idx + length(','));
else
pipe row(v_list);
exit;
end if;
end loop;
return;
end;

--3.转换
select column_value from table(split('A,B,C'));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值