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