-- @author doctor
-- @time 2015年5月8日
-- 中文二分词。 a 二分词后计算在b中出现的数目。
CREATE OR REPLACE FUNCTION "wordCount"(IN a varchar, IN b varchar)
RETURNS integer AS
$$
DECLARE
text_a varchar := trim(a);
text_b varchar := trim(b);
len int := char_length(text_a)-1;
sumWord int := 0;
idex int := 1;
temp varchar;
assistant varchar := '博士日';
BEGIN
if a is null then
return 0;
end if;
Loop
exit when idex > len ;
temp := substring(text_a,idex,2);
idex := idex +1;
sumWord := sumWord + char_length(replace(text_b,temp,assistant))- char_length(text_b) ;
end Loop;
return sumWord;
END;
$$
LANGUAGE 'plpgsql' IMMUTABLE;
转载于:https://my.oschina.net/doctor2014/blog/412269