设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1755|回复: 6
打印 上一主题 下一主题

[查询] 用and和or得不到正确的结果

[复制链接]
跳转到指定楼层
1#
发表于 2014-2-10 13:26:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这句语句哪里有问题,怎么得不到正确的结果。
select * from 表名 where 部门='" & me.部门 & "'  and 班组='" & me.班组 & "' or 工号='" & me.工号 & "'

我想要的结果的条件是:1.部门='" & me.部门 & "' and 班组='" & me.班组 & "'
                                       2.工号='" & me.工号 & "'

结果要显示符合部门和班组条件下的人员以及特定工号的人员,如果该工号不属于部门和班组,同样需要得到。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 分享淘帖 订阅订阅
2#
发表于 2014-2-10 13:52:33 | 只看该作者
select * from 表名 where (部门='" & me.部门 & "'  and 班组='" & me.班组 & "') or (工号='" & me.工号 & "')"
3#
 楼主| 发表于 2014-2-10 13:56:33 | 只看该作者
谢谢,结果正确了
请教一下,and的运算高于or,先前怎么得不到正确的结果
4#
发表于 2014-2-10 13:58:47 | 只看该作者
本帖最后由 todaynew 于 2014-2-10 14:01 编辑
kent_73 发表于 2014-2-10 13:56
谢谢,结果正确了
请教一下,and的运算高于or,先前怎么得不到正确的结果

vb中先not,再and,最后or。如果分不清优先级时,最好的办法就是用括号来强制优先运算。

点击这里给我发消息

5#
发表于 2014-2-11 13:09:58 | 只看该作者
kent_73 发表于 2014-2-10 13:56
谢谢,结果正确了
请教一下,and的运算高于or,先前怎么得不到正确的结果

同问,哪个解释下?
A and B or C ,按照优先顺序应该就等于:(A and B) or C
6#
发表于 2014-2-11 13:30:59 | 只看该作者
轻风 发表于 2014-2-11 13:09
同问,哪个解释下?
A and B or C ,按照优先顺序应该就等于:(A and B) or C

sql server中各个版本或许对逻辑运算的优先级不同。所以一般都用括号确定计算顺序比较保险。

点击这里给我发消息

7#
发表于 2014-2-11 14:41:14 | 只看该作者
todaynew 发表于 2014-2-11 13:30
sql server中各个版本或许对逻辑运算的优先级不同。所以一般都用括号确定计算顺序比较保险。

说的是,用上括号除了比较保险,自己和别人以后看代码时也比较明了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-16 02:53 , Processed in 0.085114 second(s), 30 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表