【问题标题】:Using SQL AND OR together not working一起使用 SQL AND OR 不起作用
【发布时间】:2016-10-24 10:05:13
【问题描述】:
我正在尝试使用下面的 sql 语句来获取城市为亚特兰大的记录,并且分类代码可以是 2 个不同的值。它不能正常工作,因为它不只给我亚特兰大。如果我删除最后一个 OR 条件,它会完美运行,但我需要让它成为分类值。
SELECT NPI, ...
FROM NPIData
WHERE ([Provider Business Mailing Address City Name] = 'ATLANTA')
AND ([Healthcare Provider Taxonomy Code_1] = '122300000X')
OR ([Healthcare Provider Taxonomy Code_1] = '1223G0001X')
任何想法我做错了什么?
【问题讨论】:
标签:
sql
sql-server
logical-operators
【解决方案1】:
OR 的优先级低于AND,所以你应该使用括号:
WHERE [Provider Business Mailing Address City Name] = 'ATLANTA'
AND ([Healthcare Provider Taxonomy Code_1] = '122300000X' OR
[Healthcare Provider Taxonomy Code_1] = '1223G0001X')
这里更好的选择是只使用in:
WHERE [Provider Business Mailing Address City Name] = 'ATLANTA'
AND [Healthcare Provider Taxonomy Code_1] in ('122300000X', '1223G0001X')
【解决方案2】:
试试:
WHERE ([Provider Business Mailing Address City Name] = 'ATLANTA')
AND ([Healthcare Provider Taxonomy Code_1] = '122300000X' OR [Healthcare Provider Taxonomy Code_1] = '1223G0001X')