很长一段时间以来,我一直在使用该EXISTS
子句来确定给定表中是否存在至少一条记录用于给定条件。例如 - 如果我想查看 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 那么....
但是,最近有人提到使用 ROWNUM = 1 比使用 EXISTS 子句具有更好的性能,如下所示
select 1
into v_count
from employee
where lastname = 'smith'
and rownum = 1
这个对吗?有人可以证实这一点。
提前致谢