如何编写具有AND和OR条件以及AND组条件的SELECT语句?

时间:2019-07-04 17:46:18

标签: sql

我需要使用一个SELECT语句在表中选择以下项的计数:

  1. (filler4 IN(6,7,8,9)AND address1 <>'5 +')
  2. filler4 <6
  3. filler4 <> 10
  4. address1 <>'4x'
  5. ('NC','A','B','N','UN')中的状态

我正在使用Microsoft SQL Server Management Studio

这没有返回正确的结果。

127.0.0.1:53

结果未返回正确的记录数。我希望是208,787,但我会得到313,556。

2 个答案:

答案 0 :(得分:0)

很难说出您真正想要什么逻辑。我怀疑它更像这样:

((filler4 IN (6, 7, 8, 9) AND address1 <> '5+') OR
 (filler4 < 6 AND filler4 <> 10)
) AND
address1 <> '4x' ND
status in ('NC', 'A', 'B', 'N', 'UN')

答案 1 :(得分:0)

我从问题中了解到,您想按第1,2,3点中提到的条件对行分组进行计数。

MySQL查询就是这样...

SELECT COUNT(*) Counts FROM table
group by (filler4 IN(6,7,8,9) AND address1 != '5+' ), 
         status in ('NC','A','B','N','UN'), 
         filler4 != 10, 
         filler4 < 6, 
         address1 != '4x'