0

嗨,我在形成一些 SQL 查询时有点挣扎。目前我正在使用:

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

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

www.url.com/some/text/here

应该返回

here

总是有 3 个斜线,而我发布的代码片段效果很好;只能在访问范围内。

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

4

1 回答 1

2

正如您所发现的,从 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()相关的解析。

于 2013-03-27T21:47:34.483 回答