在 sql 存储过程中使用两个 IF THEN

Using two IF THEN in sql stored procedure

我正在尝试在 MySQL Workbench 中创建一个存储过程。 我需要检查某个标志是否等于 1。如果标志等于 1,则按 FollowupDate 搜索,否则使用 QuoteDate

IF(qFollowup = 1) THEN
      IF(pFromFollowupDate != '') THEN
      BEGIN
        SET @Main = CONCAT(@Main, '  AND DATE(q.FollowupDate)  >= \'',pFromFollowupDate,'\' ');
      END;
ELSE
IF(pFromDate != '') THEN
BEGIN
  SET @Main = CONCAT(@Main, '  AND DATE(q.QuoteDate)  >= \'',pFromDate,'\' ');
END;
END IF;
END IF;

当我尝试应用更改时,它说存在语法错误。

尝试:

DELIMITER //

CREATE PROCEDURE `sp_name`()
BEGIN
  IF qFollowup = 1 THEN
    IF pFromFollowupDate != '' THEN
      SET @Main = CONCAT(@Main, '  AND DATE(q.FollowupDate)  >= \'',pFromFollowupDate,'\' ');
    ELSE
      IF pFromDate != '' THEN
        SET @Main = CONCAT(@Main, '  AND DATE(q.QuoteDate)  >= \'',pFromDate,'\' ');
      END IF;
    END IF;
  END IF;
END//

DELIMITER ;