嗨,我在形成一些 SQL 查询时有点挣扎。目前我正在使用:
InStrRev(TABLE.[_URL],"/")+1) AS OUTPUT
给定一个 URL 的输入 - 我想提取最后一部分,例如:
www.url.com/some/text/here
应该返回
here
总是有 3 个斜线,而我发布的代码片段效果很好;只能在访问范围内。
当我尝试在访问之外使用它时 - 我发现错误 - 关于我可用的替代方案的任何建议?
正如您所发现的,从 Access 中执行的 SQL 查询可以使用许多 VBA 函数(如InStr()
和InStrRev()
),这些函数本身并不被 SQL 的 Jet/ACE 方言支持。Access 对 Jet/ACE SQL 的“扩展”最强大的方面之一是您甚至可以编写自己的 VBA 函数并在 Access 查询中使用它们。
不幸的是,当涉及到“普通”Jet/ACE SQL 中支持哪些函数时,事情会变得有点混乱,因为许多名称都是相同的。如果我们可以在针对在 Access 之外执行的 Jet/ACE 数据库的查询中使用Left()
, Right()
,Mid()
等,那么为什么不使用InStr()
andInstrRev()
呢?不幸的是,答案是“只是因为。”。
在您的特定情况下,我同意 Remou 的评论,即您可能只需要检索查询中的整个列值,然后进行 [equivalent of the]InStrRev()
相关的解析。