[ Oracle SQL ] 最大値, 最小値を取得する関数 ( greatest / least )

Pocket

Oracle では複数の値の中から最大値は greatest 関数、最小値は least 関数で取得することができます。ここでは、それら2つの関数の使用例を掲載しています。

スポンサーリンク

最大値を取得する greatest 関数の使用例

複数のデータの中から最大値を取得する greatest 関数の使用例になります。詳細はコメントを参照ください。

-- 数値の中で最大値を取得する
SQL> select greatest(1, 3, 2) from dual;

GREATEST(1,3,2)
---------------
              3

-- 最初の '1' が文字列なので以降の値は暗黙的に文字列に変換され比較される
SQL> select greatest('1', '3', 2) from dual;

G
-
3

-- 文字列の中で最大値を取得する
SQL> select greatest('1', '3', 'a2') from dual;

GR
--
a2

-- 最初の '1' が文字列なので以降の値は暗黙的に文字列に変換され比較される
SQL> select greatest('1', 3, 'a2') from dual;

GR
--
a2

-- 最初の 1 が数値であるが、'a2' を暗黙的に数値に変換できずにエラーが発生する
SQL> select greatest(1, 3, 'a2') from dual;
select greatest(1, 3, 'a2') from dual
                      *
行1でエラーが発生しました。:
ORA-01722: 数値が無効です。

-- 最初の 1 が数値であるため、'2' を暗黙的に文字列に変換し比較される
SQL> select greatest(1, 3, '2') from dual;

GREATEST(1,3,'2')
-----------------
                3
最小値を取得する least 関数の使用例

複数のデータの中から最小値を取得する least 関数の使用例になります。詳細はコメントを参照ください。

-- 数値の中で最小値を取得する
SQL> select least(1, 2, 3) from dual;

LEAST(1,2,3)
------------
           1

-- 文字列内で最小値を取得する
SQL> select least('aaa', 'aab', 'aac') from dual;

LEA
---
aaa
参考
スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *