您的位置:首页 > 其它

计算字符在字符串中出现的次数

2010-10-31 07:28 267 查看
1、 通过lengthb和replace函数巧妙结合的自定义函数获取
CREATE OR REPLACE FUNCTION STR_CNT_NISJ(MOTHER_CHAR VARCHAR2, SUB_CHAR VARCHAR2) RETURN NUMBER IS
V_NUM NUMBER := 0;
BEGIN
SELECT (LENGTHB(MOTHER_CHAR) - LENGTHB(REPLACE(MOTHER_CHAR, SUB_CHAR, ''))) / LENGTHB(SUB_CHAR)
INTO V_NUM
FROM DUAL;
RETURN V_NUM;
END;
/

2、 通过for循环自定义函数
CREATE OR REPLACE FUNCTION STR_CNT(MOTHER_CHAR VARCHAR2,SUB_CHAR VARCHAR2)
RETURN NUMBER
IS
V_NUM NUMBER(10):=0;
BEGIN
FOR I IN 1..LENGTH(MOTHER_CHAR) LOOP
IF INSTR(MOTHER_CHAR,SUB_CHAR,1,I)>0 THEN
V_NUM:=V_NUM+1;
ELSE
RETURN V_NUM;
END IF;
END LOOP;
RETURN V_NUM;
END;
/

3、 总结
方法一比较巧妙,也可以不生成函数,直接lengthb结合replace直接select获取;方法二为传统思维。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: