gpt4 book ai didi

ms-access - MS Access 选择空白/空/空文本记录

转载 作者:行者123 更新时间:2023-12-02 09:14:18 28 4
gpt4 key购买 nike

我正在尝试确定测试空白/空/空文本记录的最佳方法。
我的意思是文本记录,它们是:

  • 空字符串 ( "" )
  • 任意数量的空格(例如 " " )

  • 我已经使用下表(名为 Table1 )尝试了不同的查询条件:
    Text Table
    在这里, Spaces记录包含任意数量的空格, Empty String记录包含一个空字符串( "" )和 Null记录就是这样。

    我实现目标的第一个想法是使用如下查询:
    SELECT * FROM Table1 WHERE TextField IS NULL OR Trim(TextField)=""
    这确实返回了三个目标记录: Spaces , Empty String & Null .
    然而有点奇怪,使用:
    SELECT * FROM Table1 WHERE TextField = ""
    返回 Empty String记录 Spaces记录:
    Spaces AND Empty String
    这让我认为我的查询可以省略 Trim函数并成为:
    SELECT * FROM Table1 WHERE TextField IS NULL OR TextField=""
  • 但这可靠吗?
  • 这是选择空文本记录时的最佳做法吗?

  • 或者我考虑使用:
    SELECT * FROM Table1 WHERE Nz(TextField)=""
  • 这种方法有缺点吗?
  • 有没有更好的方法来实现这一目标?

  • 编辑:具体来说,我的问题最终是:
    选择空白文本记录的最佳方法是什么?

    最佳答案

    对于普通文本,Access 将仅包含空格的字符串作为空字符串处理(例如 SELECT " " = "" 返回 -1 = True)。

    这意味着June7介绍的解决方案,WHERE TextField & "" = "" ,可能是最有效的解决方案。另一个竞争者是Nz函数,由数据库引擎处理并进行了一些优化。

    但是,在使用索引时,字符串连接和函数调用都会使索引无效。 WHERE TextField IS NULL OR TextField=""没有,如果 TextField 将是迄今为止最快的被索引。

    如果您将富文本混入其中,除了将其转换为普通文本之外,您将无济于事。在 Access 2016 中,当您在富文本字段中输入空格时,它实际上包含以下内容:<div>&nbsp;</div> (您可以使用 RichTextField & "" 看到这一点)。

    对于富文本字段,索引无论如何都不起作用,因此您可以使用以下内容:
    WHERE PlainText(RichTextField) & "" = ""

    关于ms-access - MS Access 选择空白/空/空文本记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48629463/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com