MySQL GREATEST()
関数は、値のリストから最大の値を返す比較関数です。
値のリストは複数の引数として提供されます。つまり、GREATEST()
引数のリストから最大値の引数を返します。
構文
GREATEST()
の構文 このようになります:
GREATEST(value1,value2,...)
各引数はコンマで区切られます。この関数はそれらすべてを比較し、最大値を持つものを返します。
例1-数値の比較
すべての引数が整数の場合、それらは整数として比較されます。
SELECT GREATEST(12, 120, 2400) AS 'Result';
結果:
+--------+ | Result | +--------+ | 2400 | +--------+
少なくとも1つの引数が倍精度の場合、それらは倍精度値として比較されます。それ以外の場合、少なくとも1つの引数がDECIMAL
の場合 値、それらはDECIMAL
として比較されます 値。
SELECT GREATEST(12.00, 120, 2400) AS 'Result';
結果:
+---------+ | Result | +---------+ | 2400.00 | +---------+
戻り値を決定するための正確なルールについては、以下を参照してください。
例2–文字列の比較
文字列を比較する例を次に示します。
SELECT GREATEST('a', 'b', 'c') AS 'Result';
結果:
+--------+ | Result | +--------+ | c | +--------+
もう1つあります:
SELECT GREATEST('Cat', 'Dogg', 'Rat') AS 'Result';
結果:
+--------+ | Result | +--------+ | Rat | +--------+
例3–NULL値
引数のいずれかがNULL
の場合 、結果はNULL
です 。
SELECT GREATEST('a', NULL, 'c') AS 'Result';
結果:
+--------+ | Result | +--------+ | NULL | +--------+
比較ルール
戻り値を決定する際には、特定の規則が適用されます。これらのルールは次のとおりです。
- 引数が
NULL
の場合 、結果はNULL
です 。比較する必要はありません。 - すべての引数が整数値の場合、それらは整数として比較されます。
- 少なくとも1つの引数が倍精度の場合、それらは倍精度値として比較されます。それ以外の場合、少なくとも1つの引数が
DECIMAL
の場合 値、それらはDECIMAL
として比較されます 値。 - 引数が数字と文字列の組み合わせで構成されている場合、それらは数字として比較されます。
- 引数が非バイナリ(文字)文字列の場合、引数は非バイナリ文字列として比較されます。
- 他のすべての場合、引数はバイナリ文字列として比較されます。