在Access之外的Jet / ACE查询中使用InStrRev()和类似函数

时间:2013-03-26 09:32:02

标签: ms-access jet

Hia,我在形成一些SQL查询时遇到了一些困难。 目前我正在使用:

InStrRev(TABLE.[_URL],"/")+1) AS OUTPUT

给定URL的输入 - 我想提取最后一部分,例如:

www.url.com/some/text/here

应该返回

here

总有3个斜线,而我发布的片段完美无缺;只在访问范围内。

当我尝试在访问之外使用它时 - 我发现错误 - 对我可用的替代方案有任何建议吗?

1 个答案:

答案 0 :(得分:2)

正如您所发现的,从Access中执行的SQL查询可以使用许多VBA函数(如InStr()InStrRev()),这些函数本身不受SQL的Jet / ACE方言的支持。 Jet / ACE SQL的Access“扩展”最强大的一个方面是,您甚至可以编写自己的VBA函数,并在Access查询中使用它们

不幸的是,当谈到“普通”Jet / ACE SQL支持哪些功能时,事情会有点混乱,因为许多名称是相同的。如果我们可以在针对在Access之外执行的Jet / ACE数据库的查询中使用Left()Right()Mid()等,那么为什么不InStr()InstrRev() ?不幸的是,答案是“仅仅因为。”。

在您的特定情况下,我同意Remou的评论,您可能只需要在查询中检索整个列值,然后执行[等效于] InStrRev()相关的解析。