You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MS Query中获取分隔符之间指定第N个出现的单词?

在Microsoft Query中提取分隔符之间的指定单词

当然可以搞定!因为Microsoft Query遵循Access的表达式规则,我们可以用Split函数来实现类似MySQL里SUBSTRING_INDEX的功能,而且写法还更直观。

核心解法

Split函数会将字符串按指定分隔符拆分成一个数组,之后直接通过数组索引提取对应位置的元素即可。需要注意的是,Access的数组索引是从0开始计数的,所以要取第N个单词的话,索引应该是N-1。

比如你提到的例子,从字符串"what_could_this_be"中提取下划线分隔的第3个单词"this",对应的表达式是:

Split("what_could_this_be", "_")(2)

如果是针对字段(比如字段名为target_field),写法就是:

Split([target_field], "_")(2)

处理边界情况

如果担心字符串中的分隔符数量不足(比如字段值只有2个下划线,无法提取第3个单词),可以结合UBound函数判断数组长度,避免报错:

IIf(UBound(Split([target_field], "_")) >= 2, Split([target_field], "_")(2), "")

这个表达式会先检查拆分后的数组是否至少有3个元素(索引最大到2),如果满足就返回目标单词,否则返回空字符串(你也可以改成其他默认值,比如"无对应值")。

和MySQL写法的对比

你在MySQL中用的是嵌套SUBSTRING_INDEX:

SUBSTRING_INDEX(SUBSTRING_INDEX(field, '_', 3), '_', -1)

Access的Split写法逻辑更直接,一步到位拆分后提取,不需要嵌套调用。

内容的提问来源于stack exchange,提问作者LWC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:07:30