ORACLE中怎么使用exists来判断是否存在记录
这是存储过程中的部分代码:selectcount(1)intovar_countfromjbpm4_hist_varv,jbpm4_hist_tasktwherev.pr...
这是存储过程中的部分代码:
select count(1) into var_count from jbpm4_hist_var v,jbpm4_hist_task t where v.procinstid_=t.execution_ and v.varname_='pkId' and v.value_=(''||tr.purc_report_id) and t.outcome_='作废' and v.procinstid_=tr.procinstid_;
if var_count>=1 then
--进行一些操作
end if;
这是判断表中是否存在记录,在网上找了资料说用exists比count(1)效率好些,是真的么? 那么用extists怎么判断是否存在指定的记录呢? 请高手么指教。。。。 展开
select count(1) into var_count from jbpm4_hist_var v,jbpm4_hist_task t where v.procinstid_=t.execution_ and v.varname_='pkId' and v.value_=(''||tr.purc_report_id) and t.outcome_='作废' and v.procinstid_=tr.procinstid_;
if var_count>=1 then
--进行一些操作
end if;
这是判断表中是否存在记录,在网上找了资料说用exists比count(1)效率好些,是真的么? 那么用extists怎么判断是否存在指定的记录呢? 请高手么指教。。。。 展开
3个回答
展开全部
如下:如果t表中的usercode在a表的customerno中存在相等的记录,则t表中的记录被查询出来。
select t.*
from llclaimuser t
where 1 = 1
and exists (select a.customerno from ldperson a where a.customerno = t.usercode);
exists的写法相对比较复杂,而且exists只能判断是否存在,不能返回具体的条数,不能进行相应的循环处理,也不见的比count(1)效率好多少,所以用你这种写法基本就可以了,简单明了,好维护,如果需要还可以根据查询出的记录数进行循环。
select t.*
from llclaimuser t
where 1 = 1
and exists (select a.customerno from ldperson a where a.customerno = t.usercode);
exists的写法相对比较复杂,而且exists只能判断是否存在,不能返回具体的条数,不能进行相应的循环处理,也不见的比count(1)效率好多少,所以用你这种写法基本就可以了,简单明了,好维护,如果需要还可以根据查询出的记录数进行循环。
ZESTRON
2024-09-04 广告
2024-09-04 广告
在Dr. O.K. Wack Chemie GmbH,我们高度重视ZESTRON的表界面分析技术。该技术通过深入研究材料表面与界面的性质,为提升产品质量与可靠性提供了有力支持。ZESTRON的表界面分析不仅涵盖了相变化、化学反应、吸附与解吸...
点击进入详情页
本回答由ZESTRON提供
2014-01-22 · 知道合伙人软件行家
renfengjun1986
知道合伙人软件行家
向TA提问 私信TA
知道合伙人软件行家
采纳数:925
获赞数:1553
中国地质调查局特聘数据库专家 CSDN博客专家 百度知道数据库行家 炼数成金版主 想了解更多请关注我的博客:
向TA提问 私信TA
关注
展开全部
你这样就很好了,其他的方法,如果不用count(1),而是简单的查询字段出来,并且这个sql没有结果返回,就会报错ora-01403的,判断起来更麻烦。
至于你说的exists,实在想不出来怎么判断。
至于你说的exists,实在想不出来怎么判断。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
oracle 不存在if exists的判断,现在这个就可以,不用刻意用exists, 你说的exists效率问题是where后面和not in这些比较的吧,不是exists和count的相比。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询