私は長い間、このEXISTS
句を使用して、特定の条件で特定のテーブルに少なくとも 1 つのレコードが存在するかどうかを判断してきました。たとえば、lastname = 'smith' の従業員が「employee」テーブルに存在するかどうかを確認したい場合は、次のクエリを使用しました。
select 1
into v_exists_flag
from dual
where exists (select 1
from employee
where lastname = 'smith'
)
これは、count(*) 句を使用するよりも確実に効率的です。
select count(*)
into v_count
from employee
where lastname = 'smith'
v_count > 0 の場合....
しかし、最近誰かが、以下に示すように EXISTS 句を使用するよりも ROWNUM = 1 を使用する方がパフォーマンスが優れていると述べました。
select 1
into v_count
from employee
where lastname = 'smith'
and rownum = 1
これは正しいです?誰かがこれを確認できますか。
前もって感謝します