我试图在MySQL中使用“case”,当我使用第一个代码块(仅命名一个字段)时,它工作,而在第二个代码块(命名多个字段)中,我得到一个错误;似乎使用“case”不允许我使用“,”来分隔字段的名称,在“case”中是否有其他方法来命名表中的几个字段?
第一个街区
DELIMITER $$
CREATE PROCEDURE Load_data (NP VARCHAR(10), Type VARCHAR(10))
BEGIN
SELECT CASE
WHEN Type="Apod" THEN APA
WHEN Type="Pad" THEN APP
WHEN Type="Mad" THEN APM
END FROM ap_data WHERE N=NP;
END $$
DELIMITER ;
第二个街区
DELIMITER $$
CREATE PROCEDURE Load_data (NP VARCHAR(10), Type VARCHAR(10))
BEGIN
SELECT CASE
WHEN Type="Apod" THEN APA,AMA,NomA,DNIA,Direc,Cu,Mul,NAlum
WHEN Type="Pad" THEN APP,AMP,NomP,DNIP
WHEN Type="Mad" THEN APM,AMM,NomM,DNIM
END FROM ap_data WHERE N=NP;
END $$
DELIMITER ;
执行第二个块时的结果
1064-您的SQL语法有错误;请检查与MySQL服务器版本相对应的手册,以了解在Type=“Pad”时在'AMA、NomA、DNIA、Direc、Cu、Mul、NAlum附近使用的正确语法,然后在第4行使用APP、AMP、NomP、DNIP WH'