56,677
社区成员
发帖
与我相关
我的任务
分享
CREATE FUNCTION task_wbs_sort(wbs VARCHAR) RETURN VARCHAR(64) IS
result VARCHAR(64);
restwbs VARCHAR(64);
pos INT(32);
str VARCHAR(2);
i INT(32);
m INT(32);
BEGIN
result := 0;
i := 1;
restwbs := wbs;
WHILE LENGTH(restwbs) > 0 LOOP
pos := INSTR(restwbs, '.', 1);
IF pos = 0 THEN
str := restwbs;
pos:=100;
ELSE
str := SUBSTR(restwbs, 1, pos - 1);
END IF;
IF i = 1 THEN
m := 10000;
END IF;
IF i = 2 THEN
m := 1000;
END IF;
IF i = 3 THEN
m := 100;
END IF;
IF i = 4 THEN
m := 10;
END IF;
result := result + to_number(str) * m;
restwbs := SUBSTR(restwbs, pos + 1);
i := i + 1;
END LOOP;
RETURN(result);