解决创建用于解析字符串的 mySQL 函数的问题

trouble shoot a creating a mySQL function for parsing a string

我在尝试创建 mySQL 函数来解析字符串时遇到语法错误。这可能是我没有意识到的简单事情,因为我有更多使用 SQL 创建 FN 的经验,然后是 MySQL。

这是我的函数:

CREATE FUNCTION fn_parse_string (string1 varchar(2048),datapoint1 varchar(20),delimiter1 

varchar(1)) 
RETURNS varchar(60) DETERMINISTIC

BEGIN
    DECLARE datareturn1 VARCHAR(60)
    
    IF INSTR(string1, datapoint1) > 0 
        THEN 
            SET datareturn1 = SUBSTRING_INDEX(SUBSTRING(string1,
                                                        INSTR(string1, datapoint1) + LENGTH(datapoint1),
                                                        LENGTH(string1)),
                                                delimiter1,
                                                1)
    ELSEIF IFNULL(datapoint1,'') = '' 
        THEN 
            SET datareturn1 = 'Blank Field'
    ELSE SET datareturn1 = 'N/A'
    END IF;


RETURN (datareturn1);
END

好像少了一些分号,请这样试试:

CREATE FUNCTION fn_parse_string (string1 varchar(2048),datapoint1 varchar(20),delimiter1 

varchar(1)) 
RETURNS varchar(60) DETERMINISTIC

BEGIN
    DECLARE datareturn1 VARCHAR(60);
    
    IF INSTR(string1, datapoint1) > 0 
        THEN 
            SET datareturn1 = SUBSTRING_INDEX(SUBSTRING(string1,
                                                        INSTR(string1, datapoint1) + LENGTH(datapoint1),
                                                        LENGTH(string1)),
                                                delimiter,
                                                1);
    ELSEIF IFNULL(datapoint1,'') = '' 
        THEN 
            SET datareturn1 = 'Blank Field';

    ELSE SET datareturn1 = 'N/A';
    END IF;


RETURN (datareturn1);
END