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 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