Oracle Databaseでは、GREATEST()
関数は、1つ以上の式のリストの最大のものを返します。
構文
構文は次のようになります:
GREATEST(expr [, expr ]...)
最初のexpr
返品タイプを決定するために使用されます:
- 最初の
expr
の場合 が数値の場合、Oracleは数値の優先順位が最も高い引数を判別し、比較の前に残りの引数をそのデータ型に暗黙的に変換して、そのデータ型を返します。 - 最初の
expr
の場合 ではありません 数値、次に各expr
最初のデータ型が最初のexpr
のデータ型に暗黙的に変換された後 比較前。
例
次に例を示します:
SELECT GREATEST('a', 'b', 'c')
FROM DUAL;
結果:
c
さらにいくつかあります:
SELECT
GREATEST('A', 'a') AS "r1",
GREATEST('Cat', 'Dog', 'Dot') AS "r2",
GREATEST(1, 2, 3) AS "r3",
GREATEST(1, '2', 3) AS "r4",
GREATEST('Cat', '2001-12-31') AS "r5"
FROM DUAL;
結果:
r1 r2 r3 r4 r5 _____ ______ _____ _____ ______ a Dot 3 3 Cat
表現
引数には、次のような式を含めることができます:
SELECT GREATEST(2 * 3, 1 * 3)
FROM DUAL;
結果:
6
日付
日付文字列の比較は次のとおりです:
SELECT GREATEST(DATE '2020-01-01', DATE '2021-01-01')
FROM DUAL;
結果:
01-JAN-21
日付は、現在のセッションの日付形式で返されます。現在のセッションの日付形式を確認する方法を参照してください。
ヌル値
引数がnull
の場合 、結果はnull
です :
SET NULL 'null';
SELECT
GREATEST(null, 2),
GREATEST(1, null)
FROM DUAL;
結果:
GREATEST(NULL,2) GREATEST(1,NULL) ___________________ ___________________ null null
デフォルトでは、SQLclおよびSQL * Plusは、SQL SELECT
の結果としてnull値が発生するたびに空白を返します。 声明。
ただし、SET NULL
は使用できます 返される別の文字列を指定します。ここでは、文字列null
を指定しました 返却する必要があります。
無効な引数カウント
GREATEST()
を呼び出す 引数がないとエラーが発生します:
SELECT GREATEST()
FROM DUAL;
結果:
SQL Error: ORA-00938: not enough arguments for function 00938. 00000 - "not enough arguments for function"
LEAST()
を使用することもできます 1つ以上の式のリストの最小のものを返します。