这个SQL怎么写,或者有没有这样的字符串函数来实现
本帖最后由 ggxxkkll 于 2013-10-30 10:49:56 编辑
有一个表:
create table t1 (col1 varchar(1024));
col1
-------------------------------
1;1;1;1;1 ->需要的数据
123;2;3;22;2 ->需要的数据
I;love;computer;very;much ->需要的数据
;;;; ->不需要的数据
1;;;; ->不需要的数据
1;;2;; ->不需要的数据
NULL ->不需要的数据
123;2;3;22;2;3r43;44 ->不需要的数据
ilove csdn ->不需要的数据
This is a little ->不需要的数据
1111111 ->不需要的数据
怎么写一个SQL把 字段里面 只含有4个分号
; 的非空字符串(注意不能多于4个,也不能少于4个,用;被分隔的字符串也不能为空)提取出来 ,或者有没有这样的函数来实现???
谢谢各位!!!
------解决方案--------------------自己写个函数,大致类似下面
v_length := LENGTH(v_field);
WHILE (v_start <= v_length) LOOP
v_index := INSTR(v_field, ',', v_start);
IF v_index = 0 THEN
v_word := SUBSTR(v_field, v_start);
v_start := v_length + 1;
ELSE
v_word := SUBSTR(v_field, v_start, v_index - v_start);