メインコンテンツまでスキップ
バージョン: 3.2

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 row in set (0.01 sec)

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

mysql> select greatest(3,4,5,5,6);
+-------------------------+
| greatest(3, 4, 5, 5, 6) |
+-------------------------+
| 6 |
+-------------------------+
1 row in set (0.00 sec)

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

mysql> select greatest(7,4.5);
+------------------+
| greatest(7, 4.5) |
+------------------+
| 7.0 |
+------------------+
1 row in set (0.05 sec)

例4: 入力パラメータが数値と文字列の混合であり、文字列が数値に変換できる場合。パラメータは数値として比較されます。

mysql> select greatest(7,'9');
+------------------+
| greatest(7, '9') |
+------------------+
| 9 |
+------------------+
1 row in set (0.04 sec)

例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 row in set (0.00 sec)

キーワード

GREATEST, greatest