我的意思是文本记录,它们是:
"")" ")我已经使用下表(名为Table1)尝试了不同的查询条件:
这里,Spaces记录包含任意数量的空格,Empty String记录包含一个空字符串 ( ""),Null记录就是这样。
我实现目标的第一个想法是使用如下查询:
SELECT * FROM Table1 WHERE TextField IS NULL OR Trim(TextField)=""
Run Code Online (Sandbox Code Playgroud)
这确实返回了三个目标记录:Spaces, Empty String& Null。
然而有点奇怪,使用:
SELECT * FROM Table1 WHERE TextField = ""
Run Code Online (Sandbox Code Playgroud)
同时返回Empty String记录和该Spaces记录:
这让我认为我的查询可以省略该Trim功能并变为:
SELECT * FROM Table1 WHERE TextField IS NULL OR TextField=""
Run Code Online (Sandbox Code Playgroud)
或者我考虑使用:
SELECT * FROM Table1 WHERE Nz(TextField)=""
Run Code Online (Sandbox Code Playgroud)
编辑:具体来说,我的问题最终是:
选择空白文本记录的最佳方法是什么?
对于普通文本,Access 将只有空格的字符串作为空字符串处理(例如SELECT " " = ""返回 -1 = True)。
这意味着 June7 推出的解决方案WHERE TextField & "" = ""可能是最有效的解决方案。另一个竞争者是Nz函数,它由数据库引擎处理并进行了一些优化。
但是,在使用索引时,字符串连接和函数调用都会使索引无效。WHERE TextField IS NULL OR TextField=""没有,如果TextField被索引,它将是迄今为止最快的。
如果您将富文本混为一谈,除了首先将其转换为普通文本之外,您不会有任何侥幸心理。在 Access 2016 中,当您在富文本字段中输入一个空格时,它实际上包含以下内容:(<div> </div>您可以使用 看到这一点RichTextField & "")。
对于富文本字段,索引无论如何都不起作用,因此您可以使用以下内容:
WHERE PlainText(RichTextField) & "" = ""
| 归档时间: |
|
| 查看次数: |
39335 次 |
| 最近记录: |