2013-02-11 2 views
0
BEGIN CASE assetTypeNo 
WHEN 0 THEN 
( 
SELECT * 
FROM 
books 
) 
WHEN 1 
THEN 
SELECT * 
FROM magazines 
END; 
END 

При создании хранимых процедур в mySQL.Is это возможно? Если так. Пожалуйста помоги. Я не могу найти ответ нигде.хранится proc: несколько запросов в случае, если/если еще

+0

увидеть ссылку http://dev.mysql.com/doc/refman/5.0/en/case.html – ripa

ответ

0

попробовать это,

DELIMITER $$ 
CREATE PROCEDURE ProcName 
BEGIN 
IF assetTypeNo = 0 THEN 
    SELECT * 
    FROM ; 
ELSEIF assetTypeNo = 1 THEN 
    SELECT * 
    FROM magazines 
END; 
END $$ 
DELIMITER ; 
0

Синтаксис неверен. Попробуйте этот скрипт -

BEGIN 

    CASE assetTypeNo 
    WHEN 0 THEN 
    SELECT * FROM books; 
    WHEN 1 THEN 
    SELECT * FROM magazines; 
    END CASE; 

END 
+0

Accept правильный ответ. – Devart

0

Попробуйте этот. Это должно сработать.

CREATE DEFINER = 'root'@'%' PROCEDURE `test_proc`(
     IN assetTypeNo INTEGER(11) 
    ) 
    NOT DETERMINISTIC 
    CONTAINS SQL 
    SQL SECURITY DEFINER 
    COMMENT '' 
BEGIN 

    CASE assetTypeNo 
     WHEN 0 THEN SELECT * FROM `books`; 
     WHEN 1 THEN SELECT * FROM `magazines` ; 
     ELSE 
     BEGIN 
     END; 
    END CASE; 

END; 
Смежные вопросы