加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

检查Oracle中是否存在一行的最快查询?

发布时间:2020-12-12 15:12:56 所属栏目:百科 来源:网络整理
导读:我正在使用Oracle,而且我有一个非常大的表.我需要检查是否存在满足一些简单标准的行.使用简单的SQL,最好的方法是什么? 这是我最好的猜测,虽然可能会出现我的目的足够快,但我希望学习一个规范的方法,以便在Oracle中基本上做SQL Server的“存在”: select co
我正在使用Oracle,而且我有一个非常大的表.我需要检查是否存在满足一些简单标准的行.使用简单的SQL,最好的方法是什么?

这是我最好的猜测,虽然可能会出现我的目的足够快,但我希望学习一个规范的方法,以便在Oracle中基本上做SQL Server的“存在”:

select count(x_id) from x where x.col_a = value_a and x.col_b = value_b;

然后count()将返回为另一个层中的布尔值.主要的一点是,我希望Oracle为这个查询做最少的工作 – 我只需要知道是否有符合标准的行.

是的,这些列将绝对被索引.

如果您还使用rownum = 1,则使用COUNT(*)可以:
declare
   l_cnt integer;
begin
   select count(*)
   into   l_cnt
   from   x
   where  x.col_a = value_a 
   and    x.col_b = value_b
   and    rownum = 1;
end;

这将始终返回一行,因此不需要处理任何NO_DATA_FOUND异常. l_cnt的值将为0(无行)或1(至少存在1行).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读