尝试使用其他值返回查询中的Null值

时间:2014-11-13 12:05:02

标签: sql sql-server

所以我在表格中有以下数据。

ID        Name        fID        mID
1         Bob         135        100
2         James       Null       100
3         Graham      Null       100
4         Gemma       142        100

我想要做的是返回Bob,James,Graham,基于它们都在100的mID下,而且fID是135或NULL。这不包括Gemma,因为当她不到100时,她的fID为142,不是135或NULL。

到目前为止,我尝试过这样做:

SELECT ID, Name
FROM table1
WHERE mID=100 AND fID IN (SELECT fID FROM table1 WHERE fID=135 AND fID IS NULL)

但这没有任何回报。任何有用的建议。

2 个答案:

答案 0 :(得分:2)

SELECT ID, Name
FROM table1
WHERE mID=100 AND (fID = 135 OR fID is NULL)

答案 1 :(得分:0)

在您的子选择中,您应该使用OR代替AND。

SELECT ID, Name FROM table1
WHERE mID=100 AND fID IN (SELECT fID FROM table1 WHERE fID=135 OR fID IS NULL)

错了,这里是正确的:

select id, name from table1 where mid = 100 and id in 
(SELECT ID FROM table1 WHERE fID=135 OR fID IS NULL)