メインコンテンツまでスキップ

greatest

最大値(GREATEST)

説明

1つ以上のパラメータのリストから最大の値を返します。

一般的に、返される値は入力と同じデータ型です。

以下のルールに基づいてパラメータを比較します:

  • 入力パラメータのいずれかがNULLの場合、NULLが返されます。
  • 少なくとも1つのパラメータがDOUBLE型の場合、すべてのパラメータはDOUBLE値として比較されます。DECIMALやFLOATデータ型にも同じルールが適用されます。
  • パラメータが数値と文字列が混在している場合、文字列が数値に変換可能な場合は数値として比較されます。文字列が数値に変換できない場合は、文字列として比較されます。
  • パラメータが文字の場合、最初の文字のアルファベット順で比較されます。

構文

GREATEST(expr1,...);

パラメータ

expr1:比較する式。以下のデータ型がサポートされています:

  • SMALLINT
  • TINYINT
  • INT
  • BIGINT
  • LARGEINT
  • FLOAT
  • DOUBLE
  • DECIMALV2
  • DECIMAL32
  • DECIMAL64
  • DECIMAL128
  • DATETIME
  • VARCHAR

例1:単一の入力の最大値を返す。

mysql> select greatest(3);
+-------------+
| greatest(3) |
+-------------+
| 3 |
+-------------+
1行が返されました(0.01秒)

例2:値のリストから最大値を返す。

mysql> select greatest(3,4,5,5,6);
+-------------------------+
| greatest(3, 4, 5, 5, 6) |
+-------------------------+
| 6 |
+-------------------------+
1行が返されました(0.00秒)

例3:1つのパラメータがDOUBLE型で、DOUBLE値が返される。

mysql> select greatest(7,4.5);
+------------------+
| greatest(7, 4.5) |
+------------------+
| 7.0 |
+------------------+
1行が返されました(0.05秒)

例4:入力パラメータが数値と文字列の組み合わせであり、文字列が数値に変換可能な場合、数値として比較されます。

mysql> select greatest(7,'9');
+------------------+
| greatest(7, '9') |
+------------------+
| 9 |
+------------------+
1行が返されました(0.04秒)

例5:入力パラメータが数値と文字列の組み合わせであり、文字列が数値に変換できない場合、文字列として比較されます。文字列'1''at'よりも小さいです。

select greatest(1,'at');
+-------------------+
| greatest(1, 'at') |
+-------------------+
| at |
+-------------------+

例6:入力パラメータが文字の場合、文字Zが最大の値です。

mysql> select greatest('A','B','Z');
+-------------------------+
| greatest('A', 'B', 'Z') |
+-------------------------+
| Z |
+-------------------------+
1行が返されました(0.00秒)

キーワード

GREATEST, greatest