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
ステートメントを正常に実装できるようになりました。