当前位置: 首页 > news >正文

MySQL 【流程控制】函数

目录

1、CASE 语句用于流程控制中的多分支情况。

2、IF() 函数根据测试条件是否为真分别返回指定的值。

3、IFNULL() 函数,如果第一个参数为 NULL,返回第二个参数,否则返回第一个参数。

4、NULLIF() 函数根据两个参数是否相等决定返回 NULL 还是第一个参数。


1、CASE 语句用于流程控制中的多分支情况。

语法:

CASE value
    WHEN compare_value THEN result
    [WHEN compare_value THEN result ...]
    [ELSE result]
END

或者:

CASE
    WHEN condition THEN result
    [WHEN condition THEN result ...]
    [ELSE result]
END

返回值:

CASE 语句返回 condition 为真或者 value = compare_value 为真的 THEN 子句中指定的值。

SELECTweekday_index AS `Weekday Index`,CASE weekday_indexWHEN 0 THEN 'Monday'WHEN 1 THEN 'Tuesday'WHEN 2 THEN 'Wednesday'WHEN 3 THEN 'Thursday'WHEN 4 THEN 'Friday'WHEN 5 THEN 'Saturday'WHEN 6 THEN 'Sunday'ELSE 'Error'END AS `Weekday Name`
FROMtest_case_weekday;+---------------+--------------+
| Weekday Index | Weekday Name |
+---------------+--------------+
|             0 | Monday       |
|             1 | Tuesday      |
|             2 | Wednesday    |
|             3 | Thursday     |
|             4 | Friday       |
|             5 | Saturday     |
|             6 | Sunday       |
+---------------+--------------+
SELECTweekday_index AS `Weekday Index`,CASEWHEN weekday_index = 0 THEN 'Monday'WHEN weekday_index = 1 THEN 'Tuesday'WHEN weekday_index = 2 THEN 'Wednesday'WHEN weekday_index = 3 THEN 'Thursday'WHEN weekday_index = 4 THEN 'Friday'WHEN weekday_index = 5 THEN 'Saturday'WHEN weekday_index = 6 THEN 'Sunday'ELSE 'Error'END AS `Weekday Name`
FROMtest_case_weekday;

2、IF() 函数根据测试条件是否为真分别返回指定的值。

语法:

IF(condition, expr_if_true, expr_if_false)

condition:测试条件表达式。

expr_if_true:如果 condition 为 TRUE 返回此值。

expr_if_false:如果 condition 为 FALSE 返回此值。

SELECT IF(1 > 2, 'NO', 'YES'), IF(2 > 1, 'NO', 'YES');+------------------------+------------------------+
| IF(1 > 2, 'NO', 'YES') | IF(2 > 1, 'NO', 'YES') |
+------------------------+------------------------+
| YES                    | NO                     |
+------------------------+------------------------+

3、IFNULL() 函数,如果第一个参数为 NULL,返回第二个参数,否则返回第一个参数。

语法:

IFNULL(expr1, expr2)

expr1:判断此表达式是否为 NULL

expr2:当 expr1 为 NULL 时,返回 expr2

如果 expr1 为 NULLIFNULL() 函数返回 expr1,否则返回 expr2

SELECTIFNULL(NULL, 'It is NULL'),IFNULL('I am not NULL', 'I am NULL');+----------------------------+--------------------------------------+
| IFNULL(NULL, 'It is NULL') | IFNULL('I am not NULL', 'I am NULL') |
+----------------------------+--------------------------------------+
| It is NULL                 | I am not NULL                        |
+----------------------------+--------------------------------------+

4、NULLIF() 函数根据两个参数是否相等决定返回 NULL 还是第一个参数。

NULLIF(expr1, expr2)

expr1:一个值或者表达式。

expr2:另一个值或者表达式。

如果 expr1 = expr2NULLIF() 函数返回 NULL,否则返回 expr1

SELECTNULLIF(1, 1),NULLIF(1, 2);+--------------+--------------+
| NULLIF(1, 1) | NULLIF(1, 2) |
+--------------+--------------+
|         NULL |            1 |
+--------------+--------------+

http://www.lryc.cn/news/479395.html

相关文章:

  • python 天气数据可视化
  • 【HarmonyOS Next】数据本地存储:@ohos.data.preferences
  • 使用BaGet快速搭建nuget服务
  • 基于Zynq FPGA的雷龙SD NAND存储芯片性能测试
  • 【功能介绍】信创终端系统上各WPS版本的授权差异
  • Neo4j 和 Python 初学者指南:如何使用可选关系匹配优化 Cypher 查询
  • 性能测试|docker容器下搭建JMeter+Grafana+Influxdb监控可视化平台
  • (vue3)在Pinia Store中正确使用Vue I18n
  • 如何开发查找附近地点的微信小程序
  • 三格电子——电梯监测状态项目
  • C#-运算符重载
  • 6.qsqlquerymodel源码分析
  • 【人工智能】ChatGPT多模型感知态识别
  • 2.ARM_ARM是什么
  • 深入学习指针(5)!!!!!!!!!!!!!!!
  • 离散无记忆信道
  • 【STM32】项目实战——OV7725/OV2604摄像头颜色识别检测(开源)
  • 《AI产品经理手册》——解锁AI时代的商业密钥
  • ArcGIS 地理信息系统 任意文件读取漏洞复现
  • 11.07学习
  • 【JavaEE】常见锁策略、CAS
  • Logstash 安装与部署(无坑版)
  • 鸿蒙开发:ArkUI Toggle 组件
  • 使用Matlab神经网络工具箱
  • 【面试题】Hive 查询:如何查找用户连续三天登录的记录
  • 高活跃社区 Doge 与零知识证明的强强联手,QED 重塑可扩展性
  • qt QAbstractTableModel详解
  • 掌握 Navicat 数据库结构设计 | 提升工作效率的秘诀
  • Ollama AI 框架缺陷可能导致 DoS、模型盗窃和中毒
  • vue 3:监听器