Top > SQL 関数一覧 (E‐N) > GREATEST、LEAST

引数で最大の値を求める、引数で最小の値を求める

または、複数のカラム間において最大のカラムの値を求める、最小のカラムの値を求める。

syntax

GREATEST ( expr_list )
LEAST ( expr_list )
return [ 第一引数のデータ型 ]

parameter

expr_listカンマで区切った式のリスト(1つ以上の値リスト)

return

  • 式のリストにおいて最大の値、または、最小の値をもつものを戻す。

avail

  • SQL および PL/SQL の両方で使用可能。

GREATEST 関数の内容

式のリスト [ expr , expr2 ... , exprN ] の中で 「最大の値」 を戻す。
MAX 関数は単一列、複数行に渡っての最大を求めるものであるが GREATEST は 複数列、単一行の最大値を求める。

LEAST 関数の内容

GREATEST 同様に 式のリスト [ expr , expr2 ... , exprN ] の中で「最小の値」を戻す。
MIN 関数は単一列、複数行に渡っての最小を求めるものであるが LEAST は 複数列、単一行の最小値を求める。

注意

GREATEST および LEAST 関数は MIN 集計関数MAX 集計関数 のように NULL を除外しないためリストの要素中に1つでも NULL が含まれると結果は NULL となる。 また 引数は DECODE 関数などと同様に 最大で 255 個までとなる。

GREATEST 使用例

数値の最大を求める場合

SQL> select GREATEST(1,10,3,5,5,1,6) from dual;
 
GREATEST(1,10,3,5,5,1,6)
------------------------
                      10

文字列の最大を求める場合

SQL> select GREATEST('AAA','AAa','Aaa','aaa') from dual;
 
GREATE
------
aaa

('aaa'>'Aaa'>'AAa'>'AAA') アルファベット順では 大文字<小文字 並びとなる。(NLS_LANGUAGE で変わる)

リストに NULL を含む場合

SQL> set null '<NULL>'
SQL> select greatest(1, null, 123), least(100, 9999, null)  from dual;
 
GREATEST(1,NULL,123) LEAST(100,9999,NULL)
-------------------- --------------------
<NULL>               <NULL>
  • 複数列(greatest スカラー関数) 、複数行(max グループ関数) の最大値を求める
select MAX(GREATEST(col1, col2, col3, ...)) from tablename

LEAST 使用例

数値の最小を求める場合

SQL> select LEAST(1,2,3,5,4,7,6) from dual;
 
LEAST(1,2,3,5,4,7,6)
--------------------
                   1

文字列の最小を求める場合

SQL> select LEAST('AAA','aaa','abc','ABC') from dual;
 
LEAST
------
AAA

('AAA'<'aaa'<'ABC'<'abc')

  • 複数列、複数行の最小値を求める
select MIN(LEAST(col1, col2, col3, ...)) from tablename
 


SQL 関数 - GREATEST,LEAST 関連

 
アルファベット別 関数一覧 ショートカット
ABCDEFG
HILMNOP
RSTUVWX
日本オラクル
■ 日本オラクル 株式会社
■ オラクルマスター資格 (オラクルマスターとは
■ Oracle のライセンスがわからない…
Oracle Direct (ネットで聞いても最後はここで要確認)