这是我的功能似乎不起作用。有没有人有建议?
delimiter #
Drop function if exists a_testbed.InternalBlankCount #
Create function a_testbed.InternalBlankCount (
in_string int)
Returns int
Begin
Declare v_blanks int;
if v_blanks is null then
Set v_blanks := 0;
else
Set v_blanks := length(in_string) - length(replace(in_string, ' ', ''));
end if;
Return v_blanks;
end; #
Trying to produce output as a sample:
select a_testbed.InternalBlankCount(hi how are you) #
答案 0 :(得分:0)
首先,你的输入参数作为一个整数是一个问题...我会根据你合法地工作的预期长度来使用varchar ...然后,将空白的值默认为0,然后计算是否传入的字符串是非空的
CREATE FUNCTION a_testbed.InternalBlankCount( in_string varchar(200)) RETURNS int(11)
BEGIN
Declare v_blanks int;
Set v_blanks := 0;
if NOT in_string is null then
Set v_blanks := length(in_string) - length(replace(in_string, ' ', ''));
END if;
Return v_blanks;
END