【例題】
前回ALL述語で記述した以下の例題を
極値関数で書き直すと次のようになる(ALL関数では元データにNULL値を含む場合正しく出力されない)
--Bクラスの東京在住の最も若い生徒より若いAクラスの生徒を選択する SELECT * FROM class_a WHERE age < (SELECT MIN(age) FROM class_b WHERE city = '東京');
出力結果
元データにNULL値が含まれる場合でも正しく出力される
■極値関数は集計の際にNULLを排除するというと特性を持っている
■ただし、常にALL述語と極値関数を使用した際の結果が同一とは限らない
・ALL述語:彼は東京在住の生徒の誰よりも若い
・関極値数:彼は東京在住の最も若い生徒よりも若い
以下のように bクラス に東京在住の生徒がいない場合
ALL述語を使用→ a クラス全員を出力する
極値関数を使用→ 1行も選択されない:入力が空テーブル(空集合)の場合はNULLを返す仕様のため