MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

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句を複数重ねて記述することで対応できます。レポート作成や成績管理システムなど、さまざまな場面で役立つテクニックなので、ぜひ活用してみてください。

  1. 【MySQL】ユーザー定義変数とIF関数・SELECT文を組み合わせてカスタムメッセージを表示する方法

    MySQLでは、ユーザー定義変数(@変数)とIF()関数、SELECT文を組み合わせることで、クエリの結果に応じたカスタムメッセージを簡単に表示できます。本記事では、サンプルテーブルを作成し、合計値の正負に応じて異なるメッセージを返す方法を順を追って解説します。1. サンプルテーブルの作成まず、テーブルを作成しましょう。mysql> create table DemoTable2008 ( Value int ); Query OK, 0 rows affected (10.59 sec)2. レコードの挿入次に、INSERTコマンドを使用してテーブルにレコードを挿入します。my

  2. MySQLのSELECT文をカスタム変数に設定する方法

    この記事では、MySQLでSELECT文(クエリ)の結果をカスタム変数(ユーザー定義変数)に設定する方法を解説します。まずサンプル用のテーブルを作成してデータを挿入し、その後SET句と「@」から始まる変数を使ってクエリを変数に格納する手順を、実際の実行例とともに見ていきましょう。 1. テーブルを作成する 最初に、以下のコマンドでテーブルを作成します。 mysql> create table DemoTable2013     -> (     -> Name varchar(20)