sql语句查询中exists中为什么要用select 1?

select*fromcall_cdr_xz_200609awhereanda.ori_charge<>0andexists(select1fromspecialbwhe... select * from call_cdr_xz_200609 a where and a.ori_charge<>0 and exists(select 1 from special b where a.called_nbr like b.special_nbr||'%' and b.billing_state=0 ),好比这个,为什么要加select 1?括号中的条件字句不是恒成立的吗,求解 展开
 我来答
百度网友5bb49e2
2012-09-24
知道答主
回答量:6
采纳率:0%
帮助的人:5.8万
展开全部
如果有查询结果,查询结果就会全部被1替代(当不需要知道结果是什么,只需要知道有没有结果的时候会这样用),可以提高语句的运行效率,在大数据量的情况下,提升效果非常明显
micro0369
2012-09-24 · TA获得超过1.2万个赞
知道大有可为答主
回答量:9250
采纳率:85%
帮助的人:4058万
展开全部
select 1

select *
或者select 某个字段

此处,从功能上来说是等效的,主要是用来是否有返回行,如果有,则exists成立。

至于你说的“恒成立”,我看不出来。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
rlz_bbl
2012-09-24
知道答主
回答量:15
采纳率:0%
帮助的人:10.2万
展开全部
Select 后面可以随意跟,写0或者1只是为了1,方便;2,效率稍高
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阳光上的桥
2012-09-24 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21423 获赞数:65813
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部
exists里面的select后面用什么都可以,可以用*,也可以用一个存在的列名,关键是看where条件的记录是否存在,使用select 1也可以,效果是一样的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
165******91
2012-09-24 · 超过13用户采纳过TA的回答
知道答主
回答量:39
采纳率:100%
帮助的人:22.2万
展开全部
你看清楚后面的语句,有a。也有b.俩个表是相互关联的,所以后面的语句不是恒成立的,select 1也要后面条件成立才又结果
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式