解码MySQL条件宝典:常用条件判断函数的完整指南

欢迎来到我的博客,代码的世界里,每一行都是一个故事


在这里插入图片描述

解码MySQL条件宝典:常用条件判断函数的完整指南

    • 前言
    • IF函数
    • CASE WHEN函数
    • COALESCE函数
    • NULLIF函数
    • IFNULL函数
    • GREATEST和LEAST函数

前言

在数据库的世界里,逻辑判断就像是一场精彩的冒险,而条件判断函数就是我们探索世界的导航。MySQL作为最受欢迎的关系型数据库之一,拥有许多强大的条件判断函数,可以让我们在SQL语句中轻松实现各种复杂的逻辑控制。今天,就让我们一起来揭开MySQL条件判断函数的神秘面纱,探索其中的奇妙世界吧!

IF函数

IF 函数是 Excel 中最常用的条件函数之一,用于根据条件判断返回不同的值。

语法:

IF(logical_test, value_if_true, value_if_false)
  • logical_test:逻辑表达式,用于进行条件判断。如果逻辑表达式为真,则返回 value_if_true,否则返回 value_if_false
  • value_if_true:当 logical_test 为真时,要返回的值。
  • value_if_false:当 logical_test 为假时,要返回的值。

示例代码:

=IF(A1 > 10, "大于10", "小于或等于10")
=IF(B1 = "Yes", "是", "否")
=IF(C1 <> "", C1, "无数据")

在上面的示例中,第一个示例使用了数值比较的逻辑表达式,如果单元格 A1 中的值大于 10,则返回 “大于10”,否则返回 “小于或等于10”。第二个示例使用了文本比较的逻辑表达式,如果单元格 B1 中的值为 “Yes”,则返回 “是”,否则返回 “否”。第三个示例检查单元格 C1 是否为空,如果不为空则返回其值,否则返回 “无数据”。

CASE WHEN函数

CASE WHEN 函数是一种在 SQL 中常用的条件表达式,用于根据不同条件返回不同的值。

语法:

CASEWHEN condition1 THEN result1WHEN condition2 THEN result2...ELSE result_default
END
  • condition1, condition2, ...:条件表达式,可以是各种比较、逻辑表达式或函数调用。
  • result1, result2, ...:与条件对应的结果值。
  • result_default:如果所有条件都不满足,则返回的默认结果值。

示例代码:

SELECTCASEWHEN Score >= 90 THEN '优秀'WHEN Score >= 80 THEN '良好'WHEN Score >= 60 THEN '及格'ELSE '不及格'END AS Grade
FROMStudents;

在上面的示例中,根据学生的分数,使用 CASE WHEN 函数将其映射为对应的等级。如果分数大于等于 90,则返回 ‘优秀’;如果分数大于等于 80,则返回 ‘良好’;如果分数大于等于 60,则返回 ‘及格’;否则返回 ‘不及格’。

COALESCE函数

COALESCE 函数用于从一组值中返回第一个非 NULL 值。如果所有值都是 NULL,则返回 NULL。

语法:

COALESCE(value1, value2, ...)
  • value1, value2, ...:要检查的值列表。

示例代码:

SELECT COALESCE(column_name, default_value) AS new_column_name
FROM table_name;

在上面的示例中,COALESCE 函数用于处理查询结果中的 NULL 值。如果 column_name 的值为 NULL,则返回 default_value,否则返回 column_name 的值。

另一个示例:

SELECT COALESCE(column1, column2, column3, 'No value') AS result
FROM table_name;

在这个示例中,如果 column1, column2, 和 column3 中的任何一个值为 NULL,则返回 ‘No value’,否则返回第一个非 NULL 值。

NULLIF函数

NULLIF 函数用于比较两个表达式,如果它们相等,则返回 NULL;否则返回第一个表达式的值。

语法:

NULLIF(expression1, expression2)
  • expression1expression2:要比较的两个表达式。

示例代码:

SELECT NULLIF(column1, column2) AS result
FROM table_name;

在上面的示例中,如果 column1 的值与 column2 的值相等,则返回 NULL,否则返回 column1 的值。

另一个示例:

SELECT NULLIF(score, 0) AS adjusted_score
FROM students;

在这个示例中,如果 score 的值为 0,则返回 NULL,否则返回 score 的值。这种情况下,可以使用 NULLIF 函数来处理除数为 0 的情况,避免产生除以 0 的错误。

IFNULL函数

IFNULL 函数用于判断表达式是否为 NULL,如果为 NULL,则返回指定的默认值;如果不为 NULL,则返回表达式的值。

语法:

IFNULL(expression, default_value)
  • expression:要判断是否为 NULL 的表达式。
  • default_value:如果 expression 为 NULL,则返回的默认值。

示例代码:

SELECT IFNULL(column_name, default_value) AS new_column_name
FROM table_name;

在上面的示例中,IFNULL 函数用于处理查询结果中的 NULL 值。如果 column_name 的值为 NULL,则返回 default_value,否则返回 column_name 的值。

另一个示例:

SELECT IFNULL(score, 0) AS adjusted_score
FROM students;

在这个示例中,如果 score 的值为 NULL,则返回 0,否则返回 score 的值。

GREATEST和LEAST函数

GREATEST 和 LEAST 函数用于比较多个表达式的值,并返回这些值中的最大值或最小值。

  1. GREATEST 函数

    • GREATEST 函数返回给定表达式列表中的最大值。
    • 语法:GREATEST(expression1, expression2, ...)
    • expression1, expression2, ...:要比较的表达式列表。
  2. LEAST 函数

    • LEAST 函数返回给定表达式列表中的最小值。
    • 语法:LEAST(expression1, expression2, ...)
    • expression1, expression2, ...:要比较的表达式列表。

示例代码:

SELECT GREATEST(10, 20, 30, 40) AS max_value;  -- 返回 40
SELECT LEAST(10, 20, 30, 40) AS min_value;     -- 返回 10

在上面的示例中,GREATEST 函数用于比较 10、20、30 和 40,并返回其中的最大值 40;LEAST 函数用于比较这些值,并返回其中的最小值 10。

这些函数在需要从多个值中选择最大值或最小值时非常有用,例如确定最大或最小日期、计算最大或最小销售额等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1420068.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【计算机网络】物理层 通信基础、奈氏准则、香农公式 习题2

下列说法中正确的是( )。 A. 信道与通信电路类似&#xff0c;一条可通信的电路往往包含一个信道 B.调制是指把模拟数据转换为数字信号的过程 C. 信息传输速率是指通信信道上每秒传输的码元数 D.在数值上&#xff0c;波特率等于比特率与每符号所含的比特数的比值 信息传输速率&a…

linux 环境下 分布式文件搭建fastDFS

1.软件信息 地址&#xff1a;happyfish100 (YuQing) GitHub 1.fastdfs-master.zip 2.fastdfs-nginx-module-master.zip 3.libfastcommon-master.zip 4.libserverframe-master.zip yum install make cmake gcc gcc-c perl 2.安装libfastcommon unzip libfastcommon-mast…

【Qt 学习笔记】Qt常用控件 | 容器类控件 | Tab Widget的使用及说明

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;Qt 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ Qt常用控件 | 容器类控件 | Tab Widget的使用及说明 文章编号&#xf…

分层存储无法拯救 Kafka

01 引言 Apache Kafka 自诞生之日起&#xff0c;就以其卓越的设计和强大的功能&#xff0c;成为了流处理领域的标杆。它不仅定义了现代流处理架构&#xff0c;更以其独特的分布式日志抽象&#xff0c;为实时数据流的处理和分析提供了前所未有的能力。Kafka 的成功&#xff0…

【Web后端】jsp基础知识_请求转发和重定向

1.jsp基础知识 1.1简介 java server page&#xff0c;运行在服务器端的页面java代码html代码java代码全部都放在<%%>中间 1.2jsp表达式 作用&#xff1a;将动态信息显示在页面上&#xff0c;以字符串方式&#xff0c;返回给浏览器端语法&#xff1a;<%变量或表达式…

Rust的协程机制:原理与简单示例

在现代编程中&#xff0c;协程&#xff08;Coroutine&#xff09;已经成为实现高效并发的重要工具。Rust&#xff0c;作为一种内存安全的系统编程语言&#xff0c;也采用了协程作为其并发模型的一部分。本文将深入探讨Rust协程机制的实现原理&#xff0c;并通过一个简单的示例来…

鸿蒙内核源码分析(Shell编辑篇) | 两个任务,三个阶段

系列篇从内核视角用一句话概括shell的底层实现为&#xff1a;两个任务&#xff0c;三个阶段。其本质是独立进程&#xff0c;因而划到进程管理模块。每次创建shell进程都会再创建两个任务。 客户端任务(ShellEntry)&#xff1a; 负责接受来自终端(控制台)敲入的一个个字符&…

【C/C++】设计模式——工厂模式:简单工厂、工厂方法、抽象工厂

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c系列专栏&#xff1a;C/C零基础到精通 &#x1f525; 给大…

品鉴中的个人风格:如何形成自己与众不同的红酒品鉴体验

品鉴云仓酒庄雷盛红酒不仅是一种感官体验&#xff0c;更是一种个人风格的展现。每个人都有自己与众不同的品味和偏好&#xff0c;通过品鉴红酒&#xff0c;我们可以形成自己与众不同的红酒品鉴体验。 要形成自己与众不同的红酒品鉴体验&#xff0c;首先需要勇于尝试不同类型的红…

天机学堂—项目总览和基建

总览 天机学堂是一个基于微服务架构的生产级在线教育项目。 项目亮点 技术架构 环境搭建 为了模拟真实开发环境&#xff0c;我们准备了一台虚拟机&#xff0c;在其中安装了各种各样的公共服务和组件。 Jenkins 是一个开源的持续集成&#xff08;Continuous Integration&…

计算机毕业设计Python地震预测系统 地震数据分析可视化 地震爬虫 大数据毕业设计 Flink Hadoop 深度学习 机器学习 人工智能 知识图谱

学生信息 姓名&#xff1a;  祁浩 题目&#xff1a; 基于Python的中国地震数据分析与可视化系统的设计与实现 学号&#xff1a; 2020135211 班级&#xff1a; 20大数据本科2班 指导教师&#xff1a; 刘思思 答辩过程 学生开题陈述 为了让学习者更好的了解了解地震…

SpringBoot 使用logback(多环境配置)

Logback是由log4j创始人设计的又一个开源日志组件。可用于项目日志功能。官网地址 第1步&#xff1a;添加坐标依赖 <!--logback--> <dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version…

使用Flask-Admin创建强大的后台管理系统

文章目录 安装Flask-Admin创建Flask应用添加Flask-Admin添加模型扩展延伸自定义视图权限管理文件上传 结语 在Web应用开发中&#xff0c;后台管理系统是至关重要的组成部分&#xff0c;它能够让管理员轻松管理应用的各种数据和配置。Flask-Admin是一个功能强大的Flask扩展&…

【DevOps】Linux 安全:iptables 组成、命令及应用场景详解

导读&#xff1a;全面掌握 iptables&#xff1a;从基础到实践 在 Linux 系统中&#xff0c;iptables 是一个非常强大的工具&#xff0c;它不仅是系统管理员用来构建和管理网络防火墙的首选工具&#xff0c;而且也是一个功能丰富的网络流量处理系统。无论是进行包过滤、监控网络…

ROS 2边学边练(46)-- 给URDF模型添加物理属性和碰撞属性

前言 实际物理世界中的物体需要遵守物理定律&#xff0c;机器人也不例外&#xff0c;在urdf中我们同样可以给机器人添加相关属性以模拟对应真实物理世界中的情况。 动动手 碰撞collision 碰撞属性指的是该物体的最小安全物理空间&#xff0c;站在机器人的角度&#xff0c;这个…

UE5C++ FString做为参数取值时报错error:C4840

问题描述 用来取FString类型的变量时报错&#xff1a; 问题解决 点击错误位置&#xff0c;跳转到代码&#xff1a; void AMyDelegateActor::TwoParamDelegateFunc(int32 param1, FString param2) {UE_LOG(LogTemp, Warning, TEXT("Two Param1:%d Param2:%s"), param…

docker搭建redis6.0(docker rundocker compose演示)

文章讲了&#xff1a;docker下搭建redis6.0.20遇到一些问题&#xff0c;以及解决后的最佳实践方案 文章实现了&#xff1a; docker run搭建redisdocker compose搭建redis 搭建一个redis’的过程中遇到很多问题&#xff0c;先简单说一下搭建的顺序 找一个redis.conf文件&…

spsr 的恢复出错,导致 thumb 指令集的 it 条件运行指令运行异常,清晰的调试思路帮助快速解决问题

记一次调试过程 这是一个在 arm 架构上的 RTOS 上的调试过程。问题现象为使用 thumb 指令集的 libgcc 库的情况下&#xff0c;浮点运算随机出错。经过一番追踪调试&#xff0c;逐步缩小问题范围&#xff0c;最后定位问题&#xff0c;成功解决。 场景 在某款的国产 RTOS 上&a…

RIP动态路由协议详解

目录 一&#xff1a;RIP协议的基本信息 二&#xff1a;RIP协议中的更新方式 三&#xff1a;RIP协议中的计时器 定时更新器&#xff08;UPDATE timer&#xff09; 无效定时器&#xff08;invalid Timer&#xff09; 垃圾收集定时器&#xff08;garbage collection timer&a…

【退役之重学 Java】初步认识 AQS

一、AQS 是什么 Abstract Queued Synchronizer &#xff0c;翻译过来就是“抽象的排好队的同步器”。 AQS 是一个用来构建锁和同步器的框架。是用来构建锁或者其他同步器组件的重量级基础框架及整个JUC体系的基石&#xff0c;通过内置的FIFO队列来完成线程获取资源的排队工作&…