MySQL 中的 CASE 语句

在本教程中,我们旨在学习如何在 MySQL 中使用 CASE 语句。

当满足第一个条件时,CASE 语句继续执行条件并返回一个值(类似于 IF-THEN-ELSE 语句)。当条件为真时,程序将停止读取并返回结果。

如果没有一个条件为真,它将返回 ELSE 子句中的值。如果代码中没有 ELSE 部分,程序将返回 NULL

case 语句的语法可以表示为:

casewhenconditionthenresult_1elseresult_2end;

让我们试着通过一个例子来了解更多关于这个语句的信息。

然而,在我们开始之前,我们创建了一个虚拟数据集来使用。在这里,我们创建了一个表,student_details,以及其中的几行。

-- create the table student_details
CREATETABLEstudent_details(stu_idint,stu_firstNamevarchar(255)DEFAULTNULL,stu_lastNamevarchar(255)DEFAULTNULL,primarykey(stu_id));-- insert rows to the table student_details
INSERTINTOstudent_details(stu_id,stu_firstName,stu_lastName)VALUES(1,"Preet","Sanghavi"),(2,"Rich","John"),(3,"Veron","Brow"),(4,"Geo","Jos"),(5,"Hash","Shah"),(6,"Sachin","Parker"),(7,"David","Miller");

上面的查询创建了一个表以及其中包含学生名字和姓氏的行。要查看数据中的条目,我们使用以下代码:

SELECT*FROMstudent_details;

上述代码将给出以下输出:

stu_idstu_firstNamestu_lastName1PreetSanghavi2RichJohn3VeronBrow4GeoJos5HashShah6SachinParker7DavidMiller

现在,当学生的名字是 Preet 时,让我们的目标是打印 Yes 和学生的姓氏;否则,我们打印 No

MySQL 中的 CASE 语句

正如前面的语法所见,MySQL 中的 CASE 语句需要一个条件。这类似于 IF..ELSE.. 语句。

我们可以使用以下代码示例在 MySQL 中获得所需的结果:

SELECTstu_lastName,CASEstu_firstNameWHEN'Preet'THEN'Yes'ELSE'No'ENDASRESULTFROMstudent_details;

上述代码获取每个学生的姓氏以及名为 result 的新列。如果学生的名字是 Preet,则此结果列具有 Yes

上面代码的输出可以可视化如下。

stu_lastNameRESULTSanghaviYesJohnNoBrowNoJosNoShahNoParkerNoMillerNo

同样,我们可以使用 CASE 语句来利用数据并满足我们的要求。CASE 语句的替代方案是 MySQL 中的 IF 语句。

因此,在本教程的帮助下,我们现在可以在 MySQL 中成功实现 CASE 语句。