-1

T-SQL から MySql 構文に移行していますが、Workbench 5.1.18 で発生する次の構文エラーを解決する方法がわかりません。

-- --------------------------------------------------------------------------------
-- Routine DDL
-- --------------------------------------------------------------------------------
DELIMITER //

CREATE PROCEDURE `SysTicket`.`GetProductionLines` (aId INT, aActive INT, aResponsible VARCHAR(8000))
BEGIN
    IF(aId > 0) THEN SELECT * FROM ProductionLine WHERE Id = @Id;

    ELSE IF( aActive <> -1 AND aResponsible = '|$EMPTYARG$|') THEN SELECT * FROM ProductionLine;

    ELSE IF(aResponsible = '|$EMPTYARG&|') THEN SELECT * FROM ProductionLine WHERE Active = aActive;

    ELSE SELECT * FROM ProductionLine WHERE Active = aActive AND Responsible LIKE CONCAT('%', aResponsible, '%');

    END IF;    
END//

Syntax error near END (last line) ty と事前に表示されます。

4

2 に答える 2

0

単一の比較のために IF ステートメントから角かっこを削除するか、AND の代わりにコンマを追加します。

http://dev.mysql.com/doc/refman/5.1/en/control-flow-functions.html#function_if

于 2010-04-14T16:16:44.843 に答える
-1

理解しました...正しい構文は次のとおりです。

ELSEIF

それ以外の

ELSE IF
于 2010-04-14T16:59:59.233 に答える