首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CASE语句,则在THEN部分中分配多个值

问CASE语句,则在THEN部分中分配多个值
EN

Stack Overflow用户
提问于 2011-12-16 06:56:20
回答 2查看 5.4K关注 0票数 2

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

我的CASE语句中有一个THEN语句,并希望为两个变量赋值。比如@var1 := ' something ',@var2 := 'something‘ESLE 'something’END。

这个是可能的吗?

EN

回答 2

Stack Overflow用户

发布于 2011-12-16 07:17:10

我不认为你能够在案例本身内部赋值变量,除非MySql与TSQL有很大的不同,但以下是你如何完成你正在尝试做的事情:

代码语言:javascript
复制
SELECT @va1 = CASE WHEN Some_condition THEN 'something' ELSE 'something else' END,
       @va1 = CASE WHEN Some_condition THEN 'something' ELSE 'something else' END

希望这能有所帮助

票数 1
EN

Stack Overflow用户

发布于 2011-12-16 08:20:04

从你从文档中发布的链接中提取一点:

代码语言:javascript
复制
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中。看看这是否有效

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8527793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档