我遇到过滤掉没有价值的电话号码的问题,即:
(___) ___ - ____
我在WHERE子句中尝试了这个以获取具有完整电话号码的所有值:
WHERE WRT_Phone <> null;
这使我能够获得所有具有完整价值的电话号码。但是,当我尝试
时WHERE WRT_Phone = null;
在结果表中没有填充任何内容。是否有任何功能可用于将区号转换为数字或功能以检查电话号码数据类型是否为空?
另外,我使用Access 2010来执行SQL语句。
答案 0 :(得分:2)
检查空值的语法是:
WHERE WRT_Phone IS null;
答案 1 :(得分:2)
要检查空值,您需要使用IS NULL
:
WHERE WRT_Phone IS NULL
事实上,要检查not null,您应该在技术上使用IS NOT NULL
:
WHERE WRT_Phone IS NOT NULL
在这里发生了一些奇怪的奇怪(Access特有的?),因为你不应该用WHERE WRT_Phone <> null
得到任何结果。
一般来说,当NULL
存在于布尔运算符的任一侧或作为表达式的一部分时,整个事物的计算结果为NULL
(出于WHERE子句的目的,它被认为是FALSE ):
WRT_Phone = NULL
扩展为'foobar' = NULL
,等于NULL - &gt;没有记录返回WRT_Phone <> NULL
扩展为'foobar' <> NULL
,等于NULL - &gt;没有记录返回WRT_Phone = NULL
扩展为NULL = NULL
,等于NULL - &gt;没有记录返回WRT_Phone <> NULL
扩展为NULL <> NULL
,等于NULL - &gt;没有记录返回