【问题标题】:how to delete everything after a blank space in access访问中的空白区域后如何删除所有内容
【发布时间】:2011-02-11 16:25:56
【问题描述】:

我有一个表->带有值的列名:

Juan
Manuel l.
Richard Wit

我正在尝试做一个返回的查询

Juan
Manul
Richard

我想在空格后消除。

【问题讨论】:

    标签: ms-access ms-access-2007 ms-access-2003


    【解决方案1】:

    假设您需要 SQL,请尝试

    SELECT MID(name  + " a", 1, INSTR(name + " a", " ")-1) AS FirstName FROM myTable
    

    在 VBA 中会很相似,因为 Mid() 和 InStr() 的工作方式与 Access-SQL 中的完全相同


    不过,实际上,最好将名字和姓氏分别存储在不同的字段中,这样您就不必在 SQL 中进行这种处理。

    【讨论】:

    • 如果名称没有空格,我会添加 +“a”以防止出现错误。
    • 你不想给我们& " a",否则,如果 Name 为 Null,你最终会得到 Null 吗?也就是说,在 Access/Jet/ACE 中,+ 连接运算符传播 Null(即 Null + " a" = NullNull & " a" = " a")。
    【解决方案2】:
    SELECT Left([First-Name], InStr([First-Name] & ' ', ' ') - 1) As CleanFirstName
    FROM table
    

    请记住,运行它会效率低下,因为您将针对查询中的每条记录执行 VBA 函数。根据您的使用方式,您可能希望查询返回完整字段并在事后进行处理。

    【讨论】:

    • 没错。这是一个表示层问题,可能不属于 SQL。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-24
    • 1970-01-01
    • 1970-01-01
    • 2014-03-12
    • 2019-04-23
    • 1970-01-01
    相关资源
    最近更新 更多