标准SQL没有提供解决方案,各大厂商貌似也没有提供这样的函数,只能自力更生了,
以下代码使用postgresql 的 PL/SQL语法写成,其它环境只要替换个别函数即可:
CREATE OR REPLACE FUNCTION find_string_N_time(sourceStr VARCHAR, desStr VARCHAR, appearTime INT)
RETURNS varchar as
$BODY$
DECLARE
v_temp_source_str VARCHAR(1024);
v_position INT := 0;
v_pre_position INT := 0;
BEGIN
v_temp_source_str := sourceStr;
FOR i in 1..appearTime
LOOP
SELECT POSITION(desStr IN v_temp_source_str) INTO v_pre_position;
SELECT SUBSTR(v_temp_source_str, v_position + 1) INTO v_temp_source_str;
v_position := v_position + v_pre_position;
END LOOP;
RETURN v_position;
END;
$BODY$
LANGUAGE plpgsql VOLATILE有什么更好的方法,告诉我请。
本文介绍了一种在PostgreSQL环境下通过PL/SQL实现查找特定字符串在文本中出现次数的方法,包括代码实现和使用建议。
728

被折叠的 条评论
为什么被折叠?



