求助一个应该是简单的sql问题

artak 2019-05-20 12:04:49

看网上说, 用in的时候,in后面的内容是有限制的,比如select * from tableA a where a.id in (‘1’,‘2’,‘3’),好像in的内容不能超过1000?那如果我用的是这样的写法,select * from tuser where userno in(select userno from sysusers) 的写法,受不受到1000个的限制,就比如我子语句查出的userno是2万个,最终语句能查出所有记录吗?还是说只会查出前1000个?
...全文
159 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
卖水果的net 版主 2019-05-21
  • 打赏
  • 举报
回复
好像in的内容不能超过1000
Oracle 才有这个限制。 MSSQL不限制,我测试过 100 多个万,都没有问题。
听雨停了 2019-05-21
  • 打赏
  • 举报
回复
试一试不就知道了嘛
belsai 2019-05-20
  • 打赏
  • 举报
回复
没有限制,但IN查询在SQL优化的时候是转换为OR条件的,所以如果结果集过大会造成性能变得很差,可以改一下查询方式

select a.* from tuser a inner join (select * from sysusers) b on a.userno = b.userno

34,837

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧