gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 01:30:05 24 4
gpt4 key购买 nike

我正在使用 Oracle,并且我有一个非常大的表。我需要检查是否存在满足一些简单标准的任何行。使用简单的 SQL 来解决这个问题的最佳方法是什么?

这是我最好的猜测,虽然它可能对我的目的来说足够快,但我很想学习一种规范的方法来基本上在 Oracle 中执行 SQL Server 的“存在​​”:

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

然后 count() 将在另一层中作为 bool 值返回。主要的一点是我希望 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 行)。

关于oracle - 在 Oracle 中检查行是否存在的最快查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1088156/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com