Hia,我在形成一些SQL查询时遇到了一些困难。 目前我正在使用:
InStrRev(TABLE.[_URL],"/")+1) AS OUTPUT
给定URL的输入 - 我想提取最后一部分,例如:
www.url.com/some/text/here
应该返回
here
总有3个斜线,而我发布的片段完美无缺;只在访问范围内。
当我尝试在访问之外使用它时 - 我发现错误 - 对我可用的替代方案有任何建议吗?
答案 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()
相关的解析。