2011-02-17 82 views
1

我很困惑,我试图运行一些SQL。下面是一个示例数据集ms access 2007 SQL“不喜欢”忽略空白单元格

Username ID  Text1 
red55 1235342  fdfdf 
black 5542121  sdsd 
red32 5542145  sffrds 
green 5542911   
bluee 5333121  ffds 

所以SQL将

SELECT username, ID, Text1 
    FROM user_info 
WHERE username NOT LIKE 'red*' 
     AND text1 NOT LIKE 'sd*'; 

所以,我希望看到的结果集的

Username ID  Text1 
green 5542911   
bluee 5333121  ffds 

但它不工作。它似乎忽略了空白值。我只会看到一条记录(不像上面两条)。我需要我的SQL来简单地向我展示不启动“红色”的记录以及不以“sd”开头的任何记录。然而,它要么全部摆脱它们,并且空白,要么我们使用OR语句,摆脱一切。

任何想法?我被困在这里!

回答

5

您需要明确处理空值。一种选择是:

SELECT username, ID, Text1 
FROM user_info 
WHERE (username Is Null OR username NOT LIKE 'red*') 
    AND (text1 Is Null OR text1 NOT LIKE 'sd*') 
+0

完美 - 很简单,谢谢! – 2011-02-17 16:04:16