在SELECT查询中使用字符串方法来选择第二个空格?

问题描述 投票:0回答:1

在我正在使用的MS-Access数据库中,其中一个表有一个名为“Name”的字段。该字段的格式通常是“firstname surname integer”,但有时可能只是“firstname surname”。

我需要从名称字段中选择名字和姓氏。

我看过使用Left功能

SELECT DISTINCT LEFT([Name], x)

但是,由于名称长度不同,因此不能使用常量整数作为第二个参数。也不能用它

SELECT DISTINCT LEFT(InStr([Name], " "), x) 

由于上述原因,也因为那会在第一个空间分割场。

有没有办法使用LEFTTRIMSPLIT或任何其他字符串操作,我可以创建一个查询,只选择名称的前两部分?我需要包含空间。

sql string ms-access select
1个回答
2
投票

你可以试试这个。

SELECT DISTINCT IIf( ( InStr( InStr([Name],' ') + 1 , [Name], ' ') > 0 ), Left( [Name], InStr(InStr([Name],' ') + 1 , [Name], ' ') ), [Name]) 
FROM MyTable;
© www.soinside.com 2019 - 2024. All rights reserved.