Access 查询中 space 之前的文本
Text before space in Access query
如果字符串中没有 space,我如何获取字符串中 space 之前的文本并避免错误?
例如,如果我有一个 FirstName 字段,其名称如下所示:
- 约翰·S
- 莎莉问
- 托马斯
- 罗伯特
- 玛丽·杰
我希望查询中的字段为return:
- 约翰
- 莎莉
- 托马斯
- 罗伯特
- 玛丽
我在查询中尝试了以下字段,但它仍然 returning space 和 space 之后的字符:
FName: Left([FirstName],IIf(Len(InStr([FirstName]," ")=0),Len([FirstName]),InStr([FirstName]," ")-1))
谢谢!
这会起作用:
Left([First Name], IIf((InStrRev([First Name], " ", -1)-1)<= 0, Len([First Name]), InStrRev([First Name], " ", -1)-1))
考虑:
Left(FirstName, IIf(InStr(FirstName, " ")=0, Len(FirstName), InStr(FirstName," ")-1))
或
IIf(InStr(FirstName, " "), Left(FirstName, InStr(FirstName, " ")-1), FirstName)
这假设所有条目都遵循所提供的示例模式,而不是类似:Mary Jo R。如果你想要 Mary Jo,那就太复杂了。
如果字符串中没有 space,我如何获取字符串中 space 之前的文本并避免错误?
例如,如果我有一个 FirstName 字段,其名称如下所示:
- 约翰·S
- 莎莉问
- 托马斯
- 罗伯特
- 玛丽·杰
我希望查询中的字段为return:
- 约翰
- 莎莉
- 托马斯
- 罗伯特
- 玛丽
我在查询中尝试了以下字段,但它仍然 returning space 和 space 之后的字符:
FName: Left([FirstName],IIf(Len(InStr([FirstName]," ")=0),Len([FirstName]),InStr([FirstName]," ")-1))
谢谢!
这会起作用:
Left([First Name], IIf((InStrRev([First Name], " ", -1)-1)<= 0, Len([First Name]), InStrRev([First Name], " ", -1)-1))
考虑:
Left(FirstName, IIf(InStr(FirstName, " ")=0, Len(FirstName), InStr(FirstName," ")-1))
或
IIf(InStr(FirstName, " "), Left(FirstName, InStr(FirstName, " ")-1), FirstName)
这假设所有条目都遵循所提供的示例模式,而不是类似:Mary Jo R。如果你想要 Mary Jo,那就太复杂了。