有人问before,但我不确定它是否得到了明确回答。如何在CASE语句的THEN部分中分配多个值。根据MySQL手册“Each statement_list consists of one or more statements;”,所以我想知道如何做到这一点。
我在CASE语句中有一个THEN,并希望为两个变量赋值。所以像THEN @ var1:='something',@ var2:='其他'ESLE'更多'结束。
这可能吗?
答案 0 :(得分:0)
我认为你不能在案例本身内部分配变量,除非MySql与TSQL有所不同,但这里是你如何完成你想要做的事情:
SELECT @va1 = CASE WHEN Some_condition THEN 'something' ELSE 'something else' END,
@va1 = CASE WHEN Some_condition THEN 'something' ELSE 'something else' END
希望有所帮助
答案 1 :(得分:0)
从您从文档中发布的链接中抽取一点:
CREATE PROCEDURE procase()
BEGIN
DECLARE var1 INT;
DECLARE var2 INT;
SET var1 = 1;
SET var2 = 20;
CASE var1
WHEN 1000 THEN SELECT var1;
WHEN 3000 THEN SELECT var1;
ELSE
BEGIN
-- multiple statements; statement list right below
-- performing multiple variable value setting
SET var1 = var1 + 200;
SET var2 = var2 + 200;
SELECT var1, var2;
END;
END CASE;
END
在BEGIN...END
中封装多个语句..看看是否有效