![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
“sql”语句中“in”怎么用?
1个回答
2022-12-14 · 百度认证:北京惠企网络技术有限公司官方账号
关注
![](https://wyw-base.cdn.bcebos.com/pc-content/follow.gif)
展开全部
你这样构造in的范围不对。你这样是把in后面处理成一个字符串了。而in后面跟的应该是一个范围。
你可以自己写一个返回数据集的函数来将aa.ddid值处理成in的范围, 类似于:
假设函数: ft01(nvarchar(1000)) returns table tb (val int)。
那么, 这样更新里面子查询的in条件:
where id in (select val from ft01(aa.ddid))。
另外, 此解决方法只是从in条件上来说。
如果子查询只有1条记录,in和=是没有区别,如果子查询有多条记录,用=会出错的,所以in是无论只查询有多少条记录都可以使用,而=只有当子查询只有1条记录的时候才能使用。
in和exists理解上其实是差不多,但对数据库而言,in的执行顺序是先执行只查询条件,然后把记录和外查询核对,找符合条件的。
而exists是先执行外查询,再执行子查询,找到外查询记录后和只查询对比符合条件的,如果外查询和子查询的条目数差异很大,那么效率相差很明显的。
![](https://ecmc.bdimg.com/public03/b4cb859ca634443212c22993b0c87088.png)
2022-08-05 广告
比如说student表(ID,学生姓名) 查一个学生 select * from student where 学生姓名='张三' select * from student where 学生姓 in('张三' ) 查二个学生 select ...
点击进入详情页
本回答由苏州蓝晓生物科技有限公司_提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |