MySQLのCASEステートメントを使って学生の成績に応じたカスタムメッセージを設定する方法
MySQLのCASEステートメントとは
MySQLのCASEステートメントを使うと、条件に応じて異なる値を返すことができます。本記事では、学生の点数(StudentMarks)に基づいて「Good Marks(良い点数)」「Not Good Marks(良くない点数)」といったカスタムメッセージを設定する具体的な手順を解説します。
サンプルテーブルの作成
まず、CASEステートメントで条件を判定するためのテーブルを作成しましょう。学生名と点数を格納するシンプルな構造です。
mysql> create table DemoTable1916
(
StudentName varchar(20),
StudentMarks int
);
Query OK, 0 rows affected (0.00 sec)
レコードの挿入
続いて、INSERTコマンドを使用してテーブルにいくつかのレコードを登録します。
mysql> insert into DemoTable1916 values('Chris',59);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1916 values('David',89);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1916 values('Sam',94);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1916 values('Mike',75);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1916 values('Carol',69);
Query OK, 1 row affected (0.00 sec)登録データの確認
SELECT文ですべてのレコードを表示して、データが正しく登録されているか確認します。
mysql> select * from DemoTable1916;
上記のクエリを実行すると、次のような結果が出力されます。
+-------------+--------------+
| StudentName | StudentMarks |
+-------------+--------------+
| Chris | 59 |
| David | 89 |
| Sam | 94 |
| Mike | 75 |
| Carol | 69 |
+-------------+--------------+
5 rows in set (0.00 sec)
CASEステートメントでカスタムメッセージを設定する
それでは、学生の点数に対してカスタムメッセージを設定するクエリを見ていきましょう。ここでは、点数が70より大きい場合に「Good Marks」を返し、それ以外の場合は「Not Good Marks」を返す条件を設定しています。
mysql> select StudentName,
case when StudentMarks > 70 Then 'Good Marks'
else
'Not Good Marks'
end
as Result
from DemoTable1916;
このクエリを実行すると、以下のような結果が得られます。
+-------------+----------------+
| StudentName | Result |
+-------------+----------------+
| Chris | Not Good Marks |
| David | Good Marks |
| Sam | Good Marks |
| Mike | Good Marks |
| Carol | Not Good Marks |
+-------------+----------------+
5 rows in set (0.00 sec)
まとめ
このように、MySQLのCASEステートメントを活用すれば、点数などの数値データに応じて柔軟にカスタムメッセージを表示できます。基本構文は「WHEN句で条件を指定し、ELSE句でデフォルト値を設定する」という形です。さらに細かい評価区分(例:80以上を「Excellent」など)を設けたい場合は、WHEN句を複数重ねて記述することで対応できます。レポート作成や成績管理システムなど、さまざまな場面で役立つテクニックなので、ぜひ活用してみてください。
-
【MySQL】ユーザー定義変数とIF関数・SELECT文を組み合わせてカスタムメッセージを表示する方法
MySQLでは、ユーザー定義変数(@変数)とIF()関数、SELECT文を組み合わせることで、クエリの結果に応じたカスタムメッセージを簡単に表示できます。本記事では、サンプルテーブルを作成し、合計値の正負に応じて異なるメッセージを返す方法を順を追って解説します。1. サンプルテーブルの作成まず、テーブルを作成しましょう。mysql> create table DemoTable2008 ( Value int ); Query OK, 0 rows affected (10.59 sec)2. レコードの挿入次に、INSERTコマンドを使用してテーブルにレコードを挿入します。my
-
MySQLのSELECT文をカスタム変数に設定する方法
この記事では、MySQLでSELECT文(クエリ)の結果をカスタム変数(ユーザー定義変数)に設定する方法を解説します。まずサンプル用のテーブルを作成してデータを挿入し、その後SET句と「@」から始まる変数を使ってクエリを変数に格納する手順を、実際の実行例とともに見ていきましょう。 1. テーブルを作成する 最初に、以下のコマンドでテーブルを作成します。 mysql> create table DemoTable2013 -> ( -> Name varchar(20)