0

我试图在我的 WHERE 子句中使用 AND 和 OR,但我没有得到预期的结果。这是我的查询:

select * 
  from Pitches 
 where BatterID = @playerID 
   and YEAR(GameDate) in (2019) 
   and (BattedBallID is not null or BattedBallID <> 0);

问题是我得到的 BattedBallID 的行中有 0 但它们都没有空值。我想要它,所以我的结果有 BattedBallID 不为 0 且不为空;

4

1 回答 1

3

我想要它,所以我的结果有 BattedBallID 不为 0 且不为空;

你要:

and BattedBallID is not null and BattedBallID <> 0;

代替:

and (BattedBallID is not null or BattedBallID <> 0);

您的原始表达式实际上将始终评估为真,因为这两个条件不能同时为假:如果某物是null,那么它不等于0,如果某物等于0,那么它不是null

于 2019-11-10T23:13:18.267 回答