对DB2 实现split的操作流程描述

数据库
此文章主要向大家描述的是DB2 实现split的实际操作流程,假如你对DB2 实现split的实际操作流程有兴趣了解的话,你就可以浏览以下的内容了。

以下的文章主要描述的是DB2 实现split的实际操作流程,假如你对DB2 实现split的实际操作流程有兴趣了解的话,你就可以通过以下的文章对其有个更好的了解,以下就是具体方案的描述,希望在你今后的学习中会有所帮助。

 

请教大家一个问题,用函数实现split功能,分割字符串。

如 输入字符串为 'a,b,c',

实现输出结果为第一行 a

 

第二行 b

 

第三行 c

 

求具体的DB2 实现函数。

另附 oracle的实现方法为:

 

CREATE OR REPLACE TYPE ty_str_split IS TABLE OF VARCHAR2 (4000);  
CREATE OR REPLACE FUNCTION fn_split (p_str IN VARCHAR2, p_delimiter IN VARCHAR2)  
RETURN ty_str_split  
IS  
j INT :0;  
i INT :1;  
len INT :0;  
len1 INT :0;  
str VARCHAR2 (4000);  
str_split ty_str_split :ty_str_split ();  
BEGIN  
len :LENGTH (p_str);  
len1 :LENGTH (p_delimiter);  
WHILE j < len 
LOOP  
:INSTR (p_str, p_delimiter, i);  
IF j = 0 
THEN  
:len;  
str :SUBSTR (p_str, i);  
str_split.EXTEND;  
str_split (str_split.COUNT) :str;  
IF i >= len  
THEN  
EXIT;  
END IF;  
ELSE  
str :SUBSTR (p_str, i, j - i);  
:j + len1;  
str_split.EXTEND;  
str_split (str_split.COUNT) :str;  
END IF;  
END LOOP;  
RETURN str_split;  
END fn_split;  
/  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.

测试: SELECT * FROM TABLE (fn_split ('a,b,c', ',') );

结果:

 

a

 

b

 

c

 

最佳答案 leo

 

可以写个udf 来进行分割, 但我更喜欢使用sql:

 

with n(str, ori, pos) as (  
values ('abc,bc,cd,d,ff,', 1, posstr('abc,bc,cd,d,ff,', ','))  
union all   
select str, pos+1, locate(',', str, pos+1)  
from n   
where locate(',', str, pos+1)>0)  
select str, ori, pos, substr(str, ori, pos-ori) as result from n   
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

可以写个udf 来进行分割, 但我更喜欢使用sql:

with n(str, ori, pos) as (  
values ('abc,bc,cd,d,ff,', 1, posstr('abc,bc,cd,d,ff,', ','))  
union all   
select str, pos+1, locate(',', str, pos+1)  
from n   
where locate(',', str, pos+1)>0)  
select str, ori, pos, substr(str, ori, pos-ori) as result from n   
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

以上的相关内容就是对DB2 实现split的介绍,望你能有所收获。

【编辑推荐】

  1. DB2 存储过程的异常处理器类型有几种?
  2. 对DB2 增量备份的正确运用描述
  3. DB2 并行版本中的查询优化登峰造极!
  4. IBM DB2数据库与注意事项_DB2编程的描述
  5. DB2性能优化之设计DB2配置数据库很好用!

 

 

责任编辑:佚名 来源: 投资网
相关推荐

2010-08-18 14:10:38

DB2入门

2010-08-11 12:34:59

DB2 Q 复制配置

2010-08-06 14:52:13

DB2 9.7武器

2010-08-04 13:10:02

2010-07-30 11:01:55

2010-07-29 13:34:35

DB2编目

2010-08-17 13:47:09

DB2还原

2010-08-12 16:10:45

DB2 Online

2010-08-17 15:42:30

DB2 增量备份

2010-08-02 10:44:16

DB2打补丁

2010-07-27 14:33:24

DB2数据库

2010-08-19 09:54:42

DB2死锁

2010-08-09 10:00:25

DB2数据移动

2010-08-18 15:42:33

2010-08-12 09:25:22

DB2数据库复原

2010-08-02 08:40:43

DB2数据库性能

2010-08-18 17:32:34

DB2数据库

2010-08-05 10:42:33

DB2 拉链表存储过程

2010-07-29 13:56:32

2011-05-11 13:01:07

DB2数据恢复数据备份
点赞
收藏

51CTO技术栈公众号