Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

GREATEST

値のリストから最大値を返す関数。

Synopsis

GREATEST(expression,expression[,...])

引数

expression 数値または文字列に解決される式。これらの式の値は、相互に比較されます。expression にはフィールド名、リテラル、算術式、ホスト変数、またはオブジェクト参照のいずれかを指定できます。最大で 140 個の式をコンマで区切って指定できます。

説明

GREATEST は、expression 値のコンマで区切られた値のリストから最大値を返します。式は、左から順に評価されます。expression が 1 つしかない場合は、GREATEST はその値を返します。expression が NULL の場合、GREATEST は NULL を返します。

すべての expression 値がキャノニック形式の数値に解決される場合は、数値順に比較されます。引用符で囲まれた文字列にキャノニック形式の数値が含まれている場合は、数値順に比較されます。一方、引用符で囲まれた文字列にキャノニック形式以外の数値 ('00'、'0.4'、または '+4' など) が含まれている場合は、文字列として比較されます。文字列の比較は、照合順に文字ごとに行われます。文字列値は、数値よりも大きくなります。

空の文字列は、任意の数値よりも大きいものの、他の文字列値よりは小さくなります。

返り値が数値の場合、GREATEST は返り値を (先頭と末尾のゼロが削除されるなど) キャノニック形式で返します。返り値が文字列の場合は、GREATEST は、先頭または末尾の空白も含めてその文字列を変更せずに返します。

GREATEST の逆関数は LEAST です。

返り値のデータ型

expression 値のデータ型が異なる場合、返されるデータ型は可能なすべての返り値と最も互換性の高い型、つまり最も高いデータ型の優先順位を持つデータ型になります。例えば、ある expression が整数で別の expression が小数の場合、GREATEST はデータ型 NUMERIC の値を返します。これは、NUMERIC が両方に互換性がある、最も高い優先順位を持つデータ型であるためです。

次の例では、各 GREATEST は 3 つのキャノニック形式の数値を比較しています。

SELECT GREATEST(22,2.2,-21) AS HighNum,
       GREATEST('2.2','22','-21') AS HighNumStr

次の例では、各 GREATEST は、3 つの数値文字列を比較しています。ただし、各 GREATEST には、キャノニック形式以外の文字列が 1 つ含まれています。これらのキャノニック形式以外の値は、文字列として比較されます。文字列は数字よりも常に大きくなります。

SELECT GREATEST('22','+2.2','-21'),
       GREATEST('0.2','22','-21')

次の例では、各 GREATEST は 3 つの文字列を比較し、照合順序の最も高い値を返します。

SELECT GREATEST('A','a',''),
       GREATEST('a','ab','abc'),
       GREATEST('#','0','7'),
       GREATEST('##','00','77')

次の例では、キャノニック形式の数値として扱われる、$HOROLOG 整数としての生年月日と日付に変換される整数 58073 の 2 つの日付を比較しています。これは、21 世紀に生まれた各人の生年月日を返します。2000 年 1 月 1 日よりも前に生まれた人は、1999 年 12 月 31 日というデフォルトの生年月日で表示されます。

SELECT Name,GREATEST(DOB,TO_DATE(58073)) AS NewMillenium
FROM Sample.Person

関連項目

FeedbackOpens in a new tab