有人问过before这个问题,但我不确定这个问题是否得到了明确的回答。如何在CASE语句的THEN部分中分配多个值。根据MySQL手册"Each statement_list consists of one or more statements;",所以我想知道这是怎么做到的。
我的CASE语句中有一个THEN语句,并希望为两个变量赋值。比如@var1 := ' something ',@var2 := 'something‘ESLE 'something’END。
这个是可能的吗?
发布于 2011-12-16 07:17:10
我不认为你能够在案例本身内部赋值变量,除非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希望这能有所帮助
发布于 2011-12-16 08:20:04
从你从文档中发布的链接中提取一点:
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中。看看这是否有效
https://stackoverflow.com/questions/8527793
复制相似问题