查询条件 and 和 or 的问题

百扬 2016-09-13 10:16:18
SQL查询条件中 where a or(b and c) 和 where a or b or c 结果集相同吗?
...全文
216 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Pact_Alice 2016-09-13
  • 打赏
  • 举报
回复
你可以自己做个例子看看区别的
CREATE TABLE #Temp_1
(
NAME VARCHAR(50),
A1 INT,
A2 INT,
A3 INT
)
INSERT INTO #Temp_1
SELECT 'A',22,56,77 UNION ALL
SELECT 'B',22,55,77 UNION ALL
SELECT 'A',22,52,72 UNION ALL
SELECT 'A',24,56,77 UNION ALL
SELECT 'A',22,56,74 UNION ALL
SELECT 'A',23,56,77
SELECT * FROM #Temp_1 WHERE A2=56 OR (NAME='A' AND A1=22)
SELECT * FROM #Temp_1 WHERE A2=56 OR NAME='A' or A1=22
Pact_Alice 2016-09-13
  • 打赏
  • 举报
回复
这两个意思完全不一样的, where a or(b and c) 的意思是查询满足B和C的数据,或者满足A的数据 where a or b or c 的意思是满足A 或者满足B 或者满足C
yooq_csdn 2016-09-13
  • 打赏
  • 举报
回复
不一样有差别的
百扬 2016-09-13
  • 打赏
  • 举报
回复
明白了,多谢楼上的解答!
卖水果的net 版主 2016-09-13
  • 打赏
  • 举报
回复
不相同,这不是等价的条件

中国风 2016-09-13
  • 打赏
  • 举报
回复
不同 1 a 或 b+c 2 a 或b或c

34,593

社区成员

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

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