SQL Server查询未返回预期的行

时间:2017-05-10 17:58:48

标签: sql-server

使用SQL Server 2016,我在表中有一行,我正在尝试根据两列创建一个查询来从该行中选择主键。

我知道行中的信息,但是当我在where子句中包含信息时,它仍然找不到任何内容。下面是显示行和查询的屏幕截图。查询什么都不返回。

我也试过使用&运算符,我尝试将22放入''和()。完成的列是数据类型binary(50)DoorNum列是数据类型int

enter image description here

select * 
from Dropoff 
where finished = NULL 
  and DoorNum = 22;

4 个答案:

答案 0 :(得分:4)

不要对NULL值使用“=”。因为没有什么等于NULL,甚至不是NULL。 NULL表示“未知”...如果你不知道其中有什么,你就无法比较它们。

将您的查询更改为:

select * from Dropoff 
where finished IS NULL and 
      DoorNum = 22;

答案 1 :(得分:3)

我认为检查空值如下所示“为空”:

select * from Dropoff 
where finished is NULL and 
  DoorNum = 22;

答案 2 :(得分:2)

使用IS NULL代替下一个: -

select * from Dropoff 
where finished is NULL and 
DoorNum = 22;

遵循以下规则: -

SQL is null and = null

what is “=null” and “ IS NULL”

Is there any difference between IS NULL and =NULL

答案 3 :(得分:1)

您应该使用app.get('/getFriends', requireLogin, function(req, res) { User.findOne({ _id: req.user.id }, 'friends') .populate({ path: 'friends.id', model: 'User', select: 'username firstName lastName -_id' }) .exec(function(err, user) { var friends = user.friends.map(function(v) { delete(v._id); delete(v.status); return v; }); res.json(friends); }) }) 代替:

Is Null

使用SELECT * FROM Dropoff WHERE finished is NULL and DoorNum = 22; 确定指定的表达式/值Is Null