CASE语句,在THEN部分分配多个值

时间:2011-12-15 22:56:20

标签: mysql database controls case

有人问before,但我不确定它是否得到了明确回答。如何在CASE语句的THEN部分中分配多个值。根据MySQL手册“Each statement_list consists of one or more statements;”,所以我想知道如何做到这一点。

我在CASE语句中有一个THEN,并希望为两个变量赋值。所以像THEN @ var1:='something',@ var2:='其他'ESLE'更多'结束。

这可能吗?

2 个答案:

答案 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中封装多个语句..看看是否有效