4个回答
展开全部
这个问题你提的不够清楚。建议你还是举个例子比较容易让人明白。
in和exists用法上比较类似:
select * from emp where emp_id in (select emp_id from manager)
select * from emp a where exists (select emp_id from manager where emp_id=a.emp_id)
其实我遇到的情况来看,大多数情况的SQL都可以用另一个改写。个别情况exists没办法用in替换,之前曾遇到一个SQL要表示其他相关表的资料存在状况,想了很久都没有办法用in改写,例子手头没有。
还是讲你的实际问题吧,你发出来,大家想想解决办法吧。
in和exists用法上比较类似:
select * from emp where emp_id in (select emp_id from manager)
select * from emp a where exists (select emp_id from manager where emp_id=a.emp_id)
其实我遇到的情况来看,大多数情况的SQL都可以用另一个改写。个别情况exists没办法用in替换,之前曾遇到一个SQL要表示其他相关表的资料存在状况,想了很久都没有办法用in改写,例子手头没有。
还是讲你的实际问题吧,你发出来,大家想想解决办法吧。
展开全部
select * from [table] where [a] in (select [a] from [table2] where []) order by [b][asc/desc]
select * from [table] where [a] EXIST(select * from [table2] where [a]='') order by [b][asc/desc]
如果去正 用in 如果去反用 not EXIST
一般而言
select * from [table] where [a] EXIST(select * from [table2] where [a]='') order by [b][asc/desc]
如果去正 用in 如果去反用 not EXIST
一般而言
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
in 里面的是一个数据集
EXIST返回的是一个布尔值,即只有TRUE and FALSE
EXIST返回的是一个布尔值,即只有TRUE and FALSE
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
原则是能不用in,就不要用。太耗资源了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询