【问题标题】: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')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-26
      • 2013-12-16
      • 2019-05-19
      • 2011-09-25
      • 2012-03-21
      • 1970-01-01
      • 1970-01-01
      • 2016-10-08
      相关资源
      最近更新 更多