我创建了下面的函数来处理逗号分隔的字符串并创建一个字符串。例如,如果字符串为“1,2,34,5,67”,则此函数的输出应为“0102340567”。
Db2 版本是 9.1
create function fn_get_betnum (chartext varchar(100))
LANGUAGE SQL
RETURNS VARCHAR(100)
DETERMINISTIC NO EXTERNAL ACTION
BEGIN atomic
declare pos int;
declare sep char(1);
declare input varchar(100);
declare s varchar(72);
set sep=',';
set input=trim(chartext);
set pos = locate(sep,input);
while pos > 0
do
set s=concat(s,right(concat('0',trim(substr(input,1,pos-1))),2));
set input=substr(input,pos+1,length(input)-pos);
set pos = locate(sep,input);
end while;
if length(input) > 0 then
set s=concat(s,right(concat('0',trim(input)),2));
end if;
return s;
end
该函数已成功创建,但是当我尝试以下查询时,我得到一个空结果集:
询问:
select fn_get_betnum('1,2') from my_table 仅获取前 1 行
结果集:
1
----------------------------------------------------------------------------------------------------
-
1 record(s) selected.
我究竟做错了什么?