开发者社区> 问答> 正文

如何实现SQL根据指定分隔符对字符串进行分隔?

业务数据如下: 00000000,44000000,44200000,44200700,#4420070200,4420071600!

要求实现效率果如下图: Image 2.png

展开
收起
晓风瑟瑟 2021-10-12 16:25:38 557 0
2 条回答
写回答
取消 提交回答
  • 可以通过自定义函数来实现,实现SQL如下: CREATE OR REPLACE FUNCTION F_SPLIT (src VARCHAR2, delimiter varchar2) RETURN T_ARRAY IS psrc VARCHAR2(500); a T_ARRAY := T_ARRAY(); i NUMBER := 1; j NUMBER := 1; BEGIN psrc := RTrim(src, delimiter); LOOP i := InStr(psrc, delimiter, j); --Dbms_Output.put_line(i); IF i>0 THEN a.extend; a(a.Count) := (SubStr(psrc, j, i-j)); j := i+1; --Dbms_Output.put_line(a(a.Count-1)); END IF; EXIT WHEN i=0; END LOOP; IF j <= Length(psrc) THEN a.extend; a(a.Count) := (SubStr(psrc, j, Length(psrc)+1-j)); END IF; RETURN a; END;

    2021-10-16 15:55:02
    赞同 展开评论 打赏
  • 可以使用substring

    2021-10-12 16:32:30
    赞同 展开评论 打赏
问答分类:
SQL
问答地址:
问答排行榜
最热
最新

相关电子书

更多
SQL Server 2017 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载