【问题标题】:Using string methods in a SELECT query to select up to the second space?在 SELECT 查询中使用字符串方法最多选择第二个空格?
【发布时间】:2018-03-05 11:11:53
【问题描述】:

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

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

我看过使用 Left 函数

SELECT DISTINCT LEFT([Name], x)

但是,由于名称的长度不同,这不会起作用,因为没有常量整数可用作第二个参数。也不能和

一起使用
SELECT DISTINCT LEFT(InStr([Name], " "), x) 

由于上述原因,还因为那会在第一个空格处拆分字段。

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

【问题讨论】:

  • 什么是名字和姓氏之间的分隔符,,或字符或空格
  • @BHouse 对不起,这是个空格

标签: sql string ms-access select


【解决方案1】:

你可以试试这个。

SELECT DISTINCT IIf( ( InStr( InStr([Name],' ') + 1 , [Name], ' ') > 0 ), Left( [Name], InStr(InStr([Name],' ') + 1 , [Name], ' ') ), [Name]) 
FROM MyTable;

【讨论】:

  • 哇,这是什么答案!非常感谢,太完美了!我的心被炸了
猜你喜欢
  • 2021-12-01
  • 1970-01-01
  • 2017-05-06
  • 1970-01-01
  • 1970-01-01
  • 2011-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多