使用SQL AND OR一起工作

use*_*164 0 sql sql-server logical-operators

我正在尝试使用下面的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')
Run Code Online (Sandbox Code Playgroud)

我有什么想法我做错了吗?

pot*_*hin 12

OR优先级较低而不是AND,所以你应该使用括号:

WHERE [Provider Business Mailing Address City Name] = 'ATLANTA' 
  AND ([Healthcare Provider Taxonomy Code_1] = '122300000X' OR
       [Healthcare Provider Taxonomy Code_1] = '1223G0001X')
Run Code Online (Sandbox Code Playgroud)

这里更好的选择是使用in:

WHERE [Provider Business Mailing Address City Name] = 'ATLANTA'
  AND [Healthcare Provider Taxonomy Code_1] in ('122300000X', '1223G0001X')
Run Code Online (Sandbox Code Playgroud)