这个SQL怎么写,或者有没有这样的字符串函数来实现 本帖最后由 ggxxkkll 于 2013-10-30 10:49:56 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 自己写个函数,大致类似下面 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); v_start := v_index + 1; END IF; END LOOP; SELECT * FROM t1 WHERE REGEXP_LIKE(col1,'^([^;]+(;)){4}([^;]+)$'); --使用正则表达式Select * From Test1where case when regexp_like (col1,'\w+;\w+;\w+;\w+') then 1 else 0 end =1; 报错了: $ *** Failure 3706 Syntax error: Data Type "col1" does not match a Defined Ty pe name.怎么解决? …… 你确定是在用Oracle数据库吗? 还是同样的错误,能否帮忙用: REGEXP_INSTR 来实现,谢谢!!! …… 你确定是在用Oracle数据库吗?不是Oracle数据,是别的数据库。 …… 你确定是在用Oracle数据库吗?能否帮忙用: REGEXP_INSTR 来实现 …… 你确定是在用Oracle数据库吗?不是Oracle数据,是别的数据库。好歹也两级专家了,发帖也太马虎了吧。什么数据库都不说下 length(col1)-length(replace(col1,';',''))=4 and length(col1)=length(replace(col1,';;','')可解决 SELECT * FROM t1 WHERE REGEXP_INSTR(col1,'^([^;]+(;)){4}([^;]+)$') > 0; SELECT * FROM t1 WHERE REGEXP_INSTR(col1,'^([^;]+(;)){4}([^;]+)$') > 0;楼主好强大啊! 谢谢! 求解!1条语句分10部分查询! PL/SQL解释计划 pl/sql developer 中如何将查询的结果导出到csv文件 【PL/SQL疑难杂症】Select结果列转行为何出现同一单位对应两条记录行??? 非归档模式表空间坏 如何恢复 sos DBMS_OUTPUT.PUTLINE(。。。没有显示。。 clob插入,dbms_lob.fileopen(a_bfile); 出错? tigger调用的存储过程可以使用commit/rollback语句吗? oracle数据库老是莫名其妙的丢数据为什么? rman异机恢复出问题 怎样导入整个数据库
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);
v_start := v_index + 1;
END IF;
END LOOP;
where case when regexp_like (col1,'\w+;\w+;\w+;\w+') then 1 else 0 end =1;
报错了:
$
*** Failure 3706 Syntax error: Data Type "col1" does not match a Defined Ty
pe name.怎么解决?
…… 你确定是在用Oracle数据库吗?
还是同样的错误,能否帮忙用: REGEXP_INSTR 来实现,谢谢!!!
…… 你确定是在用Oracle数据库吗?不是Oracle数据,是别的数据库。
…… 你确定是在用Oracle数据库吗?能否帮忙用: REGEXP_INSTR 来实现
…… 你确定是在用Oracle数据库吗?不是Oracle数据,是别的数据库。好歹也两级专家了,发帖也太马虎了吧。什么数据库都不说下