在oracle 中,查询语句用 in 和 or 查询的结果条数不一样。or 的大于 in 的。 请问这是什么原因?

 我来答
x403879785
2012-03-29 · TA获得超过3838个赞
知道大有可为答主
回答量:1299
采纳率:100%
帮助的人:1163万
展开全部
先试试不要and a_devtestdt is null 这句、查看两段代码结果。

再试试下面
select dept from A
where (status='[D2]方案设计阶段' or status='[D2]方案审核中' or status ='[D2]开发中' or status='[D2]开发完成' or status='[D2]单元测试进行中')
and a_devtestdt is null
-----------------------
select dept from A
where status in('[D2]方案设计阶段','[D2]方案审核中','[D2]开发中','[D2]开发完成','[D2]单元测试进行中')
and a_devtestdt is null

一般有 OR 和 AND 同时出现的where 条件、最好加括号区分
woaigigi66
2012-03-29 · TA获得超过176个赞
知道答主
回答量:75
采纳率:100%
帮助的人:45.7万
展开全部
如果你把or的条件用括号包裹起来,这样试试应该能看出问题来a and b or c和a and (b or c)是不一样的,后者等同于a and x in (b , c)
追问
还是不行啊!
select dept from A
where (status='[D2]方案设计阶段' or status='[D2]方案审核中') or (status ='[D2]开发中' or status='[D2]开发完成') or (status='[D2]单元测试进行中')
and a_devtestdt is null
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
泡面君5T
2012-03-29
知道答主
回答量:11
采纳率:0%
帮助的人:3.8万
展开全部
你把代码贴出来看看
追问
select dept from A 
where status='[D2]方案设计阶段' or status='[D2]方案审核中' or status ='[D2]开发中' or status='[D2]开发完成' or status='[D2]单元测试进行中'
and a_devtestdt is null
-----------------------
select dept from A
where status in('[D2]方案设计阶段','[D2]方案审核中','[D2]开发中','[D2]开发完成','[D2]单元测试进行中')
and a_devtestdt is null
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式