MySQL的CASE WHEN语句的使用详解(推荐)

概述mysql数据库中CASE WHEN语句。case when语句,用于计算条件列表并返回多个可能结果表达式之一。CASE 具有两种格式:简单 CASE 函数

大家好,今天来为大家解答MySQL的CASE WHEN语句的使用详解(推荐)这个问题的一些问题点,包括也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~

CASE 有两种格式:

简单CASE 函数将一个表达式与一组简单表达式进行比较以确定结果。

CASE 搜索功能评估一组布尔表达式以确定结果。

两种格式都支持可选的ELSE 参数。

语法

简单CASE函数:

案例搜索功能:

参数

输入表达式

是使用简单CASE 格式计算的表达式。输入表达式是任何有效的Microsoft SQL Server 表达式。

WHENwhen_表达式

使用简单CASE 格式时input_expression 进行比较的简单表达式。 When_expression 是任何有效的SQL Server 表达式。 input_expression 和每个when_expression 必须具有相同的数据类型,或者进行隐式转换。

占位符,指示可以使用多个WHEN when_expression THEN result_expression 子句或WHEN Boolean_expression THEN result_expression 子句。

THEN 结果表达式

当input_expression=when_expression 计算结果为TRUE 或Boolean_expression 计算结果为TRUE 时返回的表达式。

MySQL的CASE WHEN语句的使用详解(推荐)

结果表达式是任何有效的SQL Server 表达式。

ELSE else_结果_表达式

当比较运算的计算结果不是TRUE 时返回的表达式。如果省略此参数并且比较结果不是TRUE,则CASE 返回NULL 值。 Else_result_expression 是任何有效的SQL Server 表达式。 Else_result_expression 和所有result_expression 必须具有相同的数据类型,或者必须是隐式转换。

WHEN 布尔表达式

使用CASE 搜索格式时计算的布尔表达式。 Boolean_expression 是任何有效的布尔表达式。

结果类型

从result_expressions 和可选的else_result_expression 类型集中返回优先级最高的规则类型。有关详细信息,请参阅数据类型优先级。

结果值

简单的CASE函数:

计算input_expression,然后按指定顺序计算每个WHEN 子句的input_expression=when_expression。

返回第一个计算结果为TRUE 的result_expression (input_expression=when_expression)。

如果不存在计算结果为TRUE 的input_expression=when_expression,则当指定ELSE 子句时,SQL Server 将返回else_result_expression;如果未指定ELSE 子句,则返回NULL 值。

案例搜索功能:

按指定顺序计算每个WHEN 子句的Boolean_expression。

返回第一个计算结果为TRUE 的Boolean_expression 的result_expression。

MySQL的CASE WHEN语句的使用详解(推荐)

如果不存在计算结果为TRUE 的Boolean_expression,则在指定ELSE 子句时SQL Server 将返回else_result_expression;如果未指定ELSE 子句,则返回NULL 值。

mysql case when语句的例子

A. 使用带有简单CASE 函数的SELECT 语句

在SELECT 语句中,简单的CASE 函数仅检查是否相等,不进行其他比较。

例如,使用CASE函数更改图书类别显示。

注意,我稍后尝试并禁用了category=。

我使用的代码是:

结果集:

B. 使用简单CASE功能和CASE搜索功能

选择语句

在SELECT 语句中,CASE 搜索功能允许根据比较值在结果集中替换值。

示例:根据书籍的价格范围将价格(金钱列)显示为文本注释。

结果集:

C. 将CASE 函数与SUBSTRING 和SELECT 结合使用

结果集:

MySQL的CASE WHEN语句的使用详解(推荐)

CASE 可能是SQL 中最常被误用的关键字之一。

尽管此关键字之前可能已用于创建字段,但它还有更多用途。

例如,您可以在WHERE 子句中使用CASE。

首先我们看一下CASE的语法。在普通的SELECT 中,语法如下:

上面的代码中,尖括号内的内容需要替换为具体的参数。

例子:

这是CASE 的典型用法,但实际上您可以使用CASE 做更多事情。

假设以下GROUP BY 子句中的CASE:

您甚至可以通过添加ORDER BY 子句来组合这些选项,例如:

请注意,为了在GROUP BY 块中使用CASE,查询语句需要在GROUP BY 块中的SELECT 块中重复CASE 块。

除了选择自定义字段之外,CASE 在许多情况下都很有用。

如果你再深入一点,你还可以获得以前认为不可能的分组和排序结果集。

使用CASE WHEN 进行字符串替换处理

多个表达式

在SELECT 查询中使用CASE WHEN

用户评论

MySQL的CASE WHEN语句的使用详解(推荐)
熏染

之前一直不知道MySQL CASEE WHEN 这么方便,原来能根据条件灵活处理数据!这篇文章写的很详细,这下终于明白怎么用了,太赞了,以后写SQL查询一定用到这个

    有7位网友表示赞同!

MySQL的CASE WHEN语句的使用详解(推荐)
冷月花魂

看完这篇教程之后,感觉CASE WHEN 语句确实很强大啊,以前总是用IF ELSE 来实现,复杂起来还很容易出错。学习到了,分享给我的小伙伴们!

    有13位网友表示赞同!

MySQL的CASE WHEN语句的使用详解(推荐)
漫长の人生

我之前一直觉得MySQL的查询语句太简单了,没想到还有这么多技巧,比如CASE WHEN 就让我眼前一亮,可以做很多更精准的操作。点赞支持作者的文章!

    有10位网友表示赞同!

MySQL的CASE WHEN语句的使用详解(推荐)
灵魂摆渡人

这篇文章很实用,把CASE WHEN 语句的使用场景和常见问题都讲清楚了,图文并茂,非常适合入门学习的人。但是希望作者以后能再补充一些更进阶的使用案例

    有20位网友表示赞同!

MySQL的CASE WHEN语句的使用详解(推荐)
半世晨晓。

我正在尝试用CASE WHEN 来做一些数据分组的工作,这篇教程给了我很多启发。不过有时候不知道具体该怎么构造条件语句,可以多提供一些实例代码对比吧!

    有9位网友表示赞同!

MySQL的CASE WHEN语句的使用详解(推荐)
惯例

感觉这篇文章写的有点浅,没有对一些复杂情况下CASE WHEN 语句的使用进行深入讲解。比如多个层级的嵌套,或者更复杂的逻辑判断?

    有7位网友表示赞同!

MySQL的CASE WHEN语句的使用详解(推荐)
赋流云

我一直在用SQL开发应用程序,这个CASE WHEN 的用法以前没太留意过,看完这篇推荐的文章后终于知道应该怎么来使用它了。太方便! 以后可以写一些更复杂的操作逻辑了

    有6位网友表示赞同!

MySQL的CASE WHEN语句的使用详解(推荐)
柠夏初开

MySQL 的CASE WHEN 语句 really cool! 这篇文章内容很清晰易懂,图文结合让我更容易理解。比之前用 IF ELSE 写的代码简洁多了!

    有13位网友表示赞同!

MySQL的CASE WHEN语句的使用详解(推荐)
Edinburgh°南空

我对数据库管理了解不多,这篇教程讲解得还是比较容易接受的。但我希望可以加入一些更详细的部分,比如CASE WHEN 语句在实际开发中的应用场景?

    有8位网友表示赞同!

MySQL的CASE WHEN语句的使用详解(推荐)
无望的后半生

文章很好,CASE WHEN 语句介绍得很清楚。 但是希望作者能加上一些针对不同版本的MySQL的说明,因为语法细节可能会有变化吧!

    有6位网友表示赞同!

MySQL的CASE WHEN语句的使用详解(推荐)
肆忌

对于刚接触MySQL 的新手来说,这篇教程特别实用!简单易懂,将复杂的信息理清了,方便快速学习掌握CASE WHEN 语句的使用方法!

    有14位网友表示赞同!

MySQL的CASE WHEN语句的使用详解(推荐)
♂你那刺眼的温柔

虽然我理解CASE WHEN 语句的功能,但我还是觉得这篇文章缺乏实践案例。如果有更多例子来演示不同的使用场景,那就更棒了!

    有19位网友表示赞同!

MySQL的CASE WHEN语句的使用详解(推荐)
無極卍盜

文章写的不错,把CASE WHEN 的基本原理和使用方法都解释得很清楚,学习起来非常方便。但是希望再加入一些关于最佳实践的建议,比如如何优化 CASE WHEN 语句 的执行效率?

    有12位网友表示赞同!

MySQL的CASE WHEN语句的使用详解(推荐)
冷落了♂自己·

我之前一直用 IF ELSE 来处理数据比较像这种逻辑,这篇教程让我知道了CASE WHEN 真是更高效!以后就用这个了!

    有6位网友表示赞同!

MySQL的CASE WHEN语句的使用详解(推荐)
古巷青灯

文章内容很详细,从入门到进阶都涵盖了,对于想深入学习MySQL CASE WHEN 语句的人非常有用。不过希望能加入一些关于常见问题和错误处理的方法

    有19位网友表示赞同!

MySQL的CASE WHEN语句的使用详解(推荐)
歆久

我学习过CASE WHEN语句的一个局限性是它不支持嵌套超过一定的层数,这在某些复杂场景下会令人头疼。我希望作者能在这方面解释一下!

    有12位网友表示赞同!

MySQL的CASE WHEN语句的使用详解(推荐)
忘故

这篇教程介绍了MySQL CASE WHEN 语句的各种用法,讲解清晰易懂,很适合初学者学习。但是希望作者能加入一些更具体的代码示例和案例分析,更加直观地帮助读者理解

    有9位网友表示赞同!

MySQL的CASE WHEN语句的使用详解(推荐)
掉眼泪

这个CASE WHEN 语句真是一个非常强大的工具!有了它,写 sql 查询语句就轻松多了,文章也解释得很好,我受益匪浅!

    有14位网友表示赞同!

原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/119140.html

(0)
小su's avatar小su
上一篇 2024年9月1日 上午11:46
下一篇 2024年9月1日 上午11:47

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注