SQL CASE语句的使用
阅读原文时间:2023年07月08日阅读:2

CASE是一个控制流语句,其作用与IF-THEN-ELSE语句非常相似,可根据数据选择值。 CASE语句遍历条件并在满足第一个条件时返回值。 因此,一旦条件成立,它将短路,从而忽略后面的子句并返回结果。 正如我们在今天的博客中看到的那样,它可以用来测试条件和离散值。

基本语法

CASE语句有两种形式:

第一种评估一个或多个条件,并返回第一个符合条件的结果。 如果没有条件是符合的,则返回ELSE子句部分的结果,如果没有ELSE部分,则返回NULL:

CASE

WHEN condition1 THEN result1

WHEN condition2 THEN result2

WHEN conditionN THEN resultN

ELSE result

END;

第二种CASE句法返回第一个value = compare_value比较结果为真的结果。 如果没有比较结果符合,则返回ELSE后的结果,如果没有ELSE部分,则返回NULL:

CASE compare_value

WHEN condition1 THEN result1

WHEN condition2 THEN result2

WHEN conditionN THEN resultN

ELSE result

END;

示例:

要尝试使用CASE语句,我们将使用Navicat Premium编写一些针对Sakila示例数据库的查询。 它是一个功能强大的数据库开发和管理工具,可以同时连接到大多数主流的数据库,其中包括MySQL、MariaDB、MongoDB、SQL Server、Oracle、PostgreSQL、以及SQLite数据库。 它还兼容许多云数据库,例如Amazon RDS、Amazon Aurora、Amazon Redshift、Microsoft Azure、Oracle Cloud、Google Cloud、以及MongoDB Atlas。

语法1

这是一个选择电影标题以及它们的发行年份和租赁价格列表的查询:

我们将添加一个列,将租赁价格分为三类:“discount”,“regular”和“premium”。 价格范围是:

低于2.99美元

2.99-4.99美元之间

4.99美元或以上

声明:本人只是为了个人学习所用。