MySQL の CASE ステートメント

Preet Sanghavi 2022年2月3日
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