mysql的case when语法_sql基本语句大全

mysql的case when语法_sql基本语句大全介绍mysql数据库中casewhen语句的用法,首先介绍casewhen语句的基础知识,然后提供了相关例子。(1)mysql数据库中CASEWHEN语句。casewhen语句,用于计算条件列表并返回多个可能结果表达式之一。CASE具有两种格式:简单CASE函数将某个表达式与一组简单表达式进行比较以确定结果。CASE搜索函数计算一组布尔表达式以确定结果。两种格式都支持…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

介绍mysql数据库中case when语句的用法,首先介绍case when语句的基础知识,然后提供了相关例子。

(1)mysql数据库中CASE WHEN语句。

case when语句,用于计算条件列表并返回多个可能结果表达式之一。
CASE 具有两种格式:简单 CASE 函数将某个表达式与一组简单表达式进行比较以确定结果。
CASE 搜索函数计算一组布尔表达式以确定结果。 
两种格式都支持可选的 ELSE 参数。
语法如下:

1)简单 CASE 函数:

CASE input_expression
WHEN when_expression THEN
    result_expression [...n ] [
ELSE
    else_result_expression
END
参数介绍:
input_expression
是使用简单 CASE 格式时所计算的表达式。Input_expression 是任何有效的 Microsoft SQL Server 表达式。
WHEN when_expression
使用简单 CASE 格式时 input_expression 所比较的简单表达式。When_expression 是任意有效的 SQL Server 表达式。Input_expression 和每个 when_expression 的数据类型必须相同,或者是隐性转换。
占位符
,表明可以使用多个 WHEN when_expression THEN result_expression 子句或 WHEN Boolean_expression THEN result_expression 子句。
THEN result_expression 
当 input_expression = when_expression 取值为 TRUE,或者 Boolean_expression 取值 TRUE 时返回的表达式。
result expression 是任意有效的 SQL Server 表达式。
ELSE else_result_expression
当比较运算取值不为 TRUE 时返回的表达式。如果省略此参数并且比较运算取值不为 TRUE,CASE 将返回 NULL 值。else_result_expression 是任意有效的 SQL Server 表达式。else_result_expression 和所有 result_expression 的数据类型必须相同,或者必须是隐性转换。
 
简单 CASE 函数:
返回结果值介绍:
 
计算 input_expression,然后按指定顺序对每个 WHEN 子句的 input_expression = when_expression 进行计算。
返回第一个取值为 TRUE 的 (input_expression = when_expression) 的 result_expression。如果没有取值为 TRUE 的 input_expression = when_expression,则当指定 ELSE 子句时 SQL Server 将返回 else_result_expression;若没有指定 ELSE 子句,则返回 NULL 值。

2)CASE 搜索函数:

CASE
WHEN Boolean_expression THEN
    result_expression [...n ] [
ELSE
    else_result_expression
END

参数介绍:

WHEN Boolean_expression 使用 CASE 搜索格式时所计算的布尔表达式。Boolean_expression 是任意有效的布尔表达式。结果类型从 result_expressions 和可选 else_result_expression 的类型集合中返回最高的优先规则类型。有关更多信息,请参见数据类型的优先顺序。
 
CASE 搜索函数:返回结果值介绍:
按指定顺序为每个 WHEN 子句的 Boolean_expression 求值。返回第一个取值为 TRUE 的 Boolean_expression 的 result_expression。
如果没有取值为 TRUE 的 Boolean_expression,则当指定 ELSE 子句时 SQL Server 将返回 else_result_expression;若没有指定 ELSE 子句,则返回 NULL 值。

(2) MySQL case when例子介绍

1、 使用带有简单 CASE 函数的 SELECT 语句

在 SELECT 语句中,简单 CASE 函数仅检查是否相等,而不进行其它比较。
SELECT
    CASE parent_id
WHEN 0 THEN
    '00'
WHEN 1 THEN
    '11'
ELSE
    'OTHERS'
END AS parent_id_new ,
parent_id ,
type_id ,
type_name
FROM
    tdb_goods_types

mysql的case when语法_sql基本语句大全

 

2、使用带有简单 CASE 函数和 CASE 搜索函数的SELECT 语句

在 SELECT 语句中,CASE 搜索函数允许根据比较值在结果集内对值进行替换。
SELECT
    CASE
WHEN parent_id < 3 THEN
    '<3'
WHEN parent_id >= 3
AND parent_id < 5 THEN
    '>=3 && <5'
ELSE
    '>=5'
END AS parent_id_new ,
parent_id ,
type_id ,
type_name
FROM
    tdb_goods_types

mysql的case when语法_sql基本语句大全

 
 

3、CASE 可能是 SQL 中被误用最多的关键字之一

虽然,可能以前用过这个关键字来创建字段,但是它还具有更多用法。
例如,可以在 WHERE 子句中使用 CASE。或者在 GROUP BY 子句中使用 CASE
使用CASE WHEN进行字符串替换处理,稍加深入,还可以得到以前认为不可能得到的分组排序结果集。
SELECT
    CASE
WHEN parent_id < 3 THEN
    '<3'
WHEN parent_id >= 3
AND parent_id < 5 THEN
    '>=3 && <5'
ELSE
    '>=5'
END AS parent_id_new ,
count(*) AS num_count ,
parent_id ,
type_id ,
type_name
FROM
    tdb_goods_types
GROUP BY
    parent_id_new
ORDER BY
    num_count
 
 
mysql的case when语法_sql基本语句大全

4、其他例子

%简单语句
SELECT
    CASE
WHEN 10 * 2 = 30 THEN
    '30 correct'
WHEN 10 * 2 = 40 THEN
    '40 correct'
ELSE
    'Should be 10*2=20'
END;
%多重语句
SELECT
    CASE 10 * 2
WHEN 20 THEN
    '20 correct'
WHEN 30 THEN
    '30 correct'
WHEN 40 THEN
    '40 correct'
END;
 
%在SELECT查询中使用CASE WHEN
SELECT
    CASE parent_id
WHEN 0 THEN
    '00'
WHEN 1 THEN
    '11'
ELSE
    'OTHERS'
END AS parent_id_new ,
parent_id ,
type_id ,
type_name
FROM
    tdb_goods_types
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/196852.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • sql数据库回滚操作_sql回滚语句 rollback

    sql数据库回滚操作_sql回滚语句 rollbackcreatetable testtable(idnvchart(50)primkey,namenvchart(50),remarknvchart(50))select*fromtesttable go BEGINTRY –SQLServer需要显示的定义开始一个事务.BEGINTRANSACTION;–插入2条同样的数据

    2022年8月30日
    3
  • Python实现简单截图识别获取文字符号信息[通俗易懂]

    Python实现简单截图识别获取文字符号信息[通俗易懂]版权声明:本文为博主原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/weixin_42365530有时候我们百度出来一些自己需要信息后,想要直接复制粘贴(借鉴借鉴),提升工作效率,比如学校要求写什么加油稿,期末总结,思想汇报啊…额~,被请去办公室喝茶了,到时别说是博主教的啊!但是百度文库经常会限制我们复制…

    2022年5月20日
    43
  • thinkphp5.0漏洞_thinkphp6漏洞

    thinkphp5.0漏洞_thinkphp6漏洞0x00框架运行环境ThinkPHP是一个免费开源的,快速、简单的面向对象的轻量级PHP开发框架,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。PDO查询能阻止大多数传参攻击,而且框架要求的php版本是5.4;这就防止了php在5.3.6下有个PDO本地查询造成SQL注入的漏洞。…

    2022年9月19日
    4
  • 软件测试-因果图与判定表「建议收藏」

    软件测试-因果图与判定表「建议收藏」因果图简介等价类划分法和边界值法都是着重考虑到了输入条件,但是没有考虑到输入条件的组合与输入条件的相互制约关系。这样有可能忽视了很多错误如果测试时考虑到了各种组合,测试所有组合将是一个天文数字,因此需要考虑采用一种适用与多种条件组合相应产生多种动作的形式来进行测试用例的设计,这就需要因果图(逻辑模型)因果图思想一些程序的功能可以用判定表的形式来表示,根据输入条件的组合情况来规定相应的操作…

    2022年8月14日
    8
  • Java字符串匹配_获取字符串

    Java字符串匹配_获取字符串文章目录一、示例二、解释1.replace()方法2.replaceAll()方法3.replaceFirst()方法4.常用的字符列表一、示例如图,都是为了替换字符串s中的”(“符号,但三种匹配方法,有三种不同的效果及写法。二、解释1.replace()方法replace()方法没有用到正则表达式,但会匹配所有的参数并进行替换2.replaceAll()方法replaceAll()方法使用的是正则表达式来匹配,而括号在正则表达式中是特殊字符,所以需要用双斜杠来进行转义,同时会匹配所..

    2022年8月21日
    6
  • 消息队列之事务消息,RocketMQ 和 Kafka 是如何做的?

    消息队列之事务消息,RocketMQ 和 Kafka 是如何做的?

    2020年11月20日
    208

发表回复

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

关注全栈程序员社区公众号