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美元或以上
声明:本人只是为了个人学习所用。