SQL中的单条件判断函数IF和多条件判断CASE WHEN的用法

 更新时间:2023年10月26日 15:49:22   作者:Senye_ing  
MySQL提供了IF、IFNULL、CASE等条件判断函数,本文就来介绍一下SQL中的单条件判断函数IF和多条件判断CASE WHEN的用法,感兴趣的可以了解一下

一、单条件判断IF

在SQL中,条件判断函数IF用于根据指定的条件返回不同的值。

语法:

IF(condition, value_if_true, value_if_false)

参数说明:

  • condition:要判断的条件。
  • value_if_true:如果条件为真,则返回的值。
  • value_if_false:如果条件为假,则返回的值。

示例:

假设有如下名为studensts的表,包含id、name和score字段:

CREATE TABLE `students` (
  `id` int(11) NOT NULL,
  `name` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
  `score` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;

我们想根据学生的分数判断是否及格,并返回相应的结果。

SELECT id, name, IF(score >= 60, '及格', '不及格') AS result 
FROM students;

以上查询会返回一个结果集,其中result列将显示每个学生的及格或不及格的结果。

二、多条件判断CASE WHEN

在SQL中,条件判断函数CASE WHEN用于在查询中根据特定条件返回不同的结果。

语法:

CASE WHEN condition1 THEN result1
     WHEN condition2 THEN result2
     ...
     ELSE resultN
END

参数说明:

  • condition1、condition2等是条件表达式。
  • result1、result2等是根据条件表达式返回的结果
  • ELSE子句是可选的,用于指定当所有条件都不满足时返回的默认结果。

示例:

例如,下面的示例查询根据学生成绩的不同等级返回不同的提示信息:

SELECT name,
       CASE WHEN score >= 90 THEN '优秀'
            WHEN score >= 80 THEN '良好'
            WHEN score >= 70 THEN '中等'
            WHEN score >= 60 THEN '及格'
            ELSE '不及格'
       END AS grade
FROM students;

以上查询会根据学生的成绩等级返回相应的提示信息,并将结果命名为grade列。

到此这篇关于SQL中的单条件判断函数IF和多条件判断CASE WHEN的用法的文章就介绍到这了,更多相关SQL 单条件判断函数和多条件判断内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • 数据库之SQL技巧整理案例

    数据库之SQL技巧整理案例

    这篇文章主要介绍了数据库之SQL技巧整理案例,本篇文章通过整合了多种场景下的简要案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • SQl Function 创建函数实例介绍

    SQl Function 创建函数实例介绍

    这篇文章主要介绍了SQl Function 创建函数实例介绍,需要的朋友可以参考下
    2016-10-10
  • Mysql数据库性能优化三(分表、增量备份、还原)

    Mysql数据库性能优化三(分表、增量备份、还原)

    本文主要介绍了Mysql数据库性能优化(分表、增量备份、还原)的相关知识,需要的朋友可以看下
    2016-12-12
  • 嵌入式SQL和动态SQL的具体使用

    嵌入式SQL和动态SQL的具体使用

    嵌入式SQL和动态SQL是两种在应用程序中嵌入和使用SQL语句的方法,本文主要介绍了嵌入式SQL和动态SQL的具体使用,具有一定的参考价值,感兴趣的可以了解一下
    2024-05-05
  • 浅析SQL语句中GROUP BY的用法

    浅析SQL语句中GROUP BY的用法

    “Group By”从字面意义上理解就是根据“By”指定的规则对数据进行分组,所谓的分组就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理。
    2014-08-08
  • SQL查找某一条记录的方法

    SQL查找某一条记录的方法

    SQL查找某一条记录的方法...
    2007-04-04
  • sqlserver清空service broker中的队列的语句分享

    sqlserver清空service broker中的队列的语句分享

    在我们开发service broker应用时候,可能用于测试或者客户端没有配置正确等导致服务端队列存在很多垃圾队列,不便于我们排查错误,我们可以使用SQL脚本来清空服务端这些垃圾数据
    2011-08-08
  • SQL Server格式转换函数Cast、Convert介绍

    SQL Server格式转换函数Cast、Convert介绍

    这篇文章介绍了SQL Server中的格式转换函数Cast、Convert,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • SQL Server中使用表变量和临时表

    SQL Server中使用表变量和临时表

    这篇文章介绍了SQL Server中使用表变量和临时表的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • SQL Server存储过程同时返回分页结果集和总数

    SQL Server存储过程同时返回分页结果集和总数

    这篇文章主要为大家详细介绍了SQL Server存储过程同时返回分页结果集和总数,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01

最新评论