我在过滤掉没有价值的电话号码时遇到问题,即:
(___) ___ - ____
我在 WHERE 子句中尝试了这个来获取所有具有完整电话号码的值:
WHERE WRT_Phone <> null;
这使我能够获得所有具有完整价值的电话号码。但是,当我尝试
WHERE WRT_Phone = null;
结果表中没有填充任何内容。是否有任何功能可用于将区号转换为数字或检查电话号码数据类型是否为空的功能?
另外,我使用 Access 2010 来执行 SQL 语句。
我在过滤掉没有价值的电话号码时遇到问题,即:
(___) ___ - ____
我在 WHERE 子句中尝试了这个来获取所有具有完整电话号码的值:
WHERE WRT_Phone <> null;
这使我能够获得所有具有完整价值的电话号码。但是,当我尝试
WHERE WRT_Phone = null;
结果表中没有填充任何内容。是否有任何功能可用于将区号转换为数字或检查电话号码数据类型是否为空的功能?
另外,我使用 Access 2010 来执行 SQL 语句。
检查空值的语法是:
WHERE WRT_Phone IS null;
要检查空值,您需要使用IS NULL
:
WHERE WRT_Phone IS 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 -> 没有返回记录WRT_Phone <> NULL
扩展到'foobar' <> NULL
等于 NULL -> 没有返回记录WRT_Phone = NULL
扩展到NULL = NULL
等于 NULL -> 没有返回记录WRT_Phone <> NULL
扩展到NULL <> NULL
等于 NULL -> 没有返回记录