logo

MySQL CASE式

MySQL CASE 式は、制御フロー関数の一部であり、これにより、 if-else または if-then-else クエリに対するロジック。この式は、SELECT、WHERE、ORDER BY 句など、有効なプログラムまたはクエリを使用するどこでも使用できます。

CASE 式はさまざまな条件を検証し、最初の条件が次の場合に結果を返します。 真実 。条件が満たされると、トラバースが停止し、出力が行われます。 true の条件が見つからない場合は、 それ以外のブロック 。 else ブロックが見つからない場合は、 ヌル 価値。主な目標は、 MySQL CASE 文は、SELECT 句内の複数の IF 文を処理します。

CASE ステートメントは次の 2 つの方法で使用できます。

1. 単純な CASE ステートメント:

最初の方法は、以下に示すように、値を取得し、それを指定されたステートメントと照合することです。

Javaの文字列を置き換える

構文

 CASE value WHEN [compare_value] THEN result [WHEN [compare_value] THEN result ...] [ELSE result] END 

最初のときに結果を返します。 比較値 比較が真になります。それ以外の場合は、else 句が返されます。

 mysql> SELECT CASE 1 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more' END; 

出力

上記のコマンドが正常に実行されると、次の出力が表示されます。

MySQL CASE式

2. 検索された CASE ステートメント:

2 番目の方法は、 検索条件 の中に いつ 句が見つかった場合は、対応する THEN 句で結果を返します。それ以外の場合は、else 句が返されます。 else 句が指定されていない場合は、NULL 値が返されます。

構文

 CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END 

 mysql> SELECT CASE BINARY 'B' WHEN 'a' THEN 1 WHEN 'b' THEN 2 END; 

出力

MySQL CASE式

戻り値の型

CASE 式は、使用されるコンテキストに応じて結果を返します。例えば:

  • 文字列コンテキストで使用される場合は、文字列の結果が返されます。
  • 数値コンテキストで使用される場合は、整数、浮動小数点数、10 進数値を返します。

MySQL バージョンのサポート

CASE ステートメントは、次の MySQL バージョンをサポートできます。

Java定数
  • MySQL 8.0
  • MySQL 5.7
  • MySQL 5.6
  • MySQL 5.5
  • MySQL 5.1
  • MySQL 5.0
  • MySQL 4.1
  • MySQL 4.0
  • MySQL 3.23.3

テーブルを作成しましょう ' 学生 ' そして、このテーブルに対して CASE ステートメントを実行します。

MySQL CASE式

上の表では、次のことがわかります。 クラス列 学生の学部の短縮形が含まれます。そのため、部門の短縮形を完全な形に変更する予定です。次に、この操作を行うために次のクエリを実行します。

 SELECT studentid, firstname, CASE class WHEN 'CS' THEN 'Computer Science' WHEN 'EC' THEN 'Electronics and Communication' ELSE 'Electrical Engineering' END AS department from students; 

上記のクエリが正常に実行されると、次の出力が得られます。ここで、次のことがわかります。 部門 列には短い形式ではなく完全な形式が含まれています。

MySQL CASE式