我想用sql语句求出:
表名tb_admin 字段名alisten
一个字段(alisten)里的字符串“1,2,3,4,5,6,7,8,”中出现了几次“,”
表名tb_admin 字段名alisten
一个字段(alisten)里的字符串“1,2,3,4,5,6,7,8,”中出现了几次“,”
解决方案 »
- Oracle DBConsoletest服务不能启动
- 一条语句竟然如此之慢求高人解答
- 问一个oracle联表更新的问题(……求大侠们帮忙
- 关于触发器的夸用户触发的问题。
- proc 的程序能不能执行sql command命令?
- oracle 数据库安装以后,我发现我的C盘可用空间每天都减少,怎么回事?
- 在Oracle8.0.3里,有个SQL语句一直有问题,但在9.2里却运行正常,高手请指教一二。
- 关于ORACLE的默认值的设定的问题??望指点一二
- job问题
- ORACLE 8.17删除大量数据变慢
- 问个oracle建表的问题(名称已被一现有约束条件占用)
- 在oracle数据库中,员工考勤统计怎么写sql语句,查询出勤率,迟到次数,早退次数,旷工次数
RETURN NUMBER
AS
v_length INT;
v_count INT;
BEGIN
v_count := 0;
v_length := LENGTH (instrs); IF v_length < 1
THEN
RETURN 0;
ELSE
FOR i IN 1 .. v_length
LOOP
IF SUBSTR (instrs, i, 1) = ','
THEN
v_count:= v_count+1;
end if;
end loop;
return v_count;
end if;
end ;
/select get_comma_count(alisten) from tb_admin;
--一楼的方法很巧妙,不过是不是应该加个LENGTH?
select alisten,length(alisten)-length(replace(alisten,',','')) from tb_admin
12楼的方法有点意思,正则表达式很强大呀,我也写一个另类的方法.Select Count(*)
From (Select '1,2,3,4,5,6,7,8,' v From dual)
Connect By instr(v, rownum) > 0;
From (Select '1,2,3,4,5,6,7,8,' v From dual)
Connect By instr(v, ',', 1, rownum) > 0;漏了点东西.抱歉