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