问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

oracle 如何用sql实现split功能

发布网友 发布时间:2022-04-28 22:32

我来回答

2个回答

热心网友 时间:2022-04-07 19:39

本函数可以将“目标字符串”以“指定字符串”进行拆分,并通过表结构返回结果。代码如下:

 

CREATE OR REPLACE TYPE str_split IS TABLE OF VARCHAR2 (4000);
CREATE OR REPLACE FUNCTION splitstr(p_string IN VARCHAR2, p_delimiter IN VARCHAR2)
   RETURN str_split
   PIPELINED
AS
   v_length   NUMBER := LENGTH(p_string);
   v_start    NUMBER := 1;
   v_index    NUMBER;
BEGIN
   WHILE(v_start <= v_length)
   LOOP
       v_index := INSTR(p_string, p_delimiter, v_start);

       IF v_index = 0
       THEN
           PIPE ROW(SUBSTR(p_string, v_start));
           v_start := v_length + 1;
       ELSE
           PIPE ROW(SUBSTR(p_string, v_start, v_index - v_start));
           v_start := v_index + 1;
       END IF;
   END LOOP;

   RETURN;
END splitstr;

创建完毕后,我们来测试一下,例如执行如下SQL:

select * from table(splitstr('Hello,Cnblogs!',','));

其输出结果为一个两行的表,如下图:

热心网友 时间:2022-04-07 20:57

create or replace function tabstr (
p_str in varchar2,
p_sep in varchar2 default ','
)
return tabstr_t
is
l_str long := p_str || p_sep;
l_tabstr tabstr_t := tabstr_t();
begin
while l_str is not null loop
l_tabstr.extend(1);
l_tabstr(l_tabstr.count) := rtrim(substr(
l_str,1,instr(l_str,p_sep)),p_sep);
l_str := substr(l_str,instr(l_str,p_sep)+1);
end loop;
return l_tabstr;
end;
/

试试这个函数
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
爱普生ME100不能打印 想去锦州西餐厅吃饭,环境好能拍照的,我主要是想拍照。。。食物很精致... Ipad Air连接电脑后itunes不显示设备 SuperJunior-it's you歌词 super junior lt's you的歌词翻译成中文? ...没钱,出来26了,究竟该不该去当兵?退役以后找工作 高中毕业生去入伍了没有考大学,请问退伍还可以继续升学历吗?有什么途径... 什么是免漆家具? 家里用免漆板打家具需多长时间好住进去 脐带血干细胞移植介绍 办理每年公积金自动划拨,需要些什么手续 SQL拆分逗号分隔的字符串 公积金资金划拨中能离职么? sql如何根据隔符分割字符串? 合肥二手房买卖公积金组合贷款,已到资金划拨阶段还要多久拿到放款呢 sql查询里 怎么拆分字符串(按“/”拆分) 合肥住房公积金怎么办理划拨还款??? 公积金贷款状态:资金划拨放款,是贷款成功了吗? 合肥公积金贷款资金划拨需要多久 三国全面战争 怎么招战场上的武将,一不小心 就把它杀死了! 公积金资金划拨是不是贷款已经批下来了 –安 三国全面战争武将有什么好处 住房公积金资金调拨是什么意思 《三国战争》名将阁 详解怎么玩 三国战争策略类网页游戏,历史武将是唯一的,质量好,不知道谁知道啊。 除去翼三国2。 找半天了!唉! 三国战争游戏武将奶妈都谁? 三国 全面战争怎么才能无限或者多收买武将? 历代武将谁最强,三国的武将按历史上说真的是万人敌么? 公积金贷款状态:资金划拨放款,是贷款成功了吗 三国战争天命武将获得 公积金中心资金划拨完成,还差银行放款是不是说明贷款已经批下来了,求专家指点,谢谢了 sql 字符串拆分?? 如何住房公积金自动划拨 sql怎么实现有c#里的spilt拆分字符串的方法啊 SQL字符串拆分的问题 土地使用证上写个划拨是什么意思?可以用于公积金贷款不? sql分割字符串查询,分组统计 住房公积金划拨需要提供的材料,要满足什么条件 Split(SQL) 公积金按份额划转 SQL 特定字符串分割 请教:公积金按月划拨的问题 为什么我不加群只能看见管理员和群主看不到群成员 sql字符串怎么按逗号分割 陶特里我的红包,不想要上边钱少的怎么能删掉 我问下怎么在没有加入qq群的情况下看到群内所有成员 再sql中如何把一个字符串按字符分解比如@m=‘abc’分解以后变成‘a... 比如没加入该群,想知道群里多少人怎么查? sql中的split SQL如何根据符号截取字符串