ms access 2007 SQL"not like"忽略空白单元格

Mat*_*cer 1 sql ms-access ms-access-2007 ms-access-2003

我对我试图运行的一些SQL感到困惑.这是一个示例数据集

Username ID        Text1
red55   1235342     fdfdf
black   5542121     sdsd
red32   5542145     sffrds
green   5542911         
bluee   5333121     ffds
Run Code Online (Sandbox Code Playgroud)

所以SQL就是

SELECT username, ID, Text1 
  FROM user_info
 WHERE username NOT LIKE 'red*' 
       AND text1 NOT LIKE 'sd*';
Run Code Online (Sandbox Code Playgroud)

所以我希望看到一个结果集

Username ID        Text1
green   5542911         
bluee   5333121     ffds
Run Code Online (Sandbox Code Playgroud)

但它不起作用.它似乎忽略了空白值.我只会看到一条记录(不像上面的两条记录).我需要我的SQL简单地说给我看一些不开始"红色"的记录以及任何不以"sd"开头的记录.然而它要么全部摆脱它们而且空白,或者如果我使用OR语句,那就完全没有了.

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

mwo*_*e02 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*')
Run Code Online (Sandbox Code Playgroud)