MySQL 中的 CASE 語句

Preet Sanghavi 2022年5月14日
MySQL 中的 CASE 語句

在本教程中,我們旨在學習如何在 MySQL 中使用 CASE 語句。

當滿足第一個條件時,CASE 語句繼續執行條件並返回一個值(類似於 IF-THEN-ELSE 語句)。當條件為真時,程式將停止讀取並返回結果。

如果沒有一個條件為真,它將返回 ELSE 子句中的值。如果程式碼中沒有 ELSE 部分,程式將返回 NULL

case 語句的語法可以表示為:

case when condition then result_1 else result_2 end;

讓我們試著通過一個例子來了解更多關於這個語句的資訊。

然而,在我們開始之前,我們建立了一個虛擬資料集來使用。在這裡,我們建立了一個表,student_details,以及其中的幾行。

-- create the table student_details
CREATE TABLE student_details(
  stu_id int,
  stu_firstName varchar(255) DEFAULT NULL,
  stu_lastName varchar(255) DEFAULT NULL,
  primary key(stu_id)
);
-- insert rows to the table student_details
INSERT INTO student_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 * FROM student_details;

上述程式碼將給出以下輸出:

stu_id	stu_firstName	stu_lastName
1	      Preet	        Sanghavi
2	      Rich	        John
3	      Veron	        Brow
4	      Geo	        Jos
5	      Hash	        Shah
6	      Sachin	    Parker
7	      David	        Miller

現在,當學生的名字是 Preet 時,讓我們的目標是列印 Yes 和學生的姓氏;否則,我們列印 No

MySQL 中的 CASE 語句

正如前面的語法所見,MySQL 中的 CASE 語句需要一個條件。這類似於 IF..ELSE.. 語句。

我們可以使用以下程式碼示例在 MySQL 中獲得所需的結果:

SELECT stu_lastName,
CASE stu_firstName
    WHEN 'Preet' THEN 'Yes'
    ELSE 'No'
END
AS RESULT
FROM student_details;

上述程式碼獲取每個學生的姓氏以及名為 result 的新列。如果學生的名字是 Preet,則此結果列具有 Yes

上面程式碼的輸出可以視覺化如下。

stu_lastName	RESULT
Sanghavi		Yes
John			No
Brow			No
Jos				No
Shah			No
Parker			No
Miller			No

同樣,我們可以使用 CASE 語句來利用資料並滿足我們的要求。CASE 語句的替代方案是 MySQL 中的 IF 語句。

因此,在本教程的幫助下,我們現在可以在 MySQL 中成功實現 CASE 語句。

作者: Preet Sanghavi
Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub

相關文章 - MySQL Statement