我目前正在编写一个动态组合 sql 查询以检索许多帖子的函数,但我遇到了一个较小的问题。
伪代码:
if trim$(sSqlQuery) <> "" then
sSqlQuery = "foo foo ) foo"
end if
if 1 = 1 then
sSqlQuery = sSqlQuery & "bar bar bar"
end if
该函数大部分时间返回正确的 sql-query,但由于在此之前的较早函数中的某些情况,将触发第二个 if 子句。导致奇怪的查询结果。
我需要做的是弄清楚如何在将第二组查询附加到第二个 if 子句中的总查询之前删除 sSqlQuery 中最后一次出现的“)”。
在伪中,我认为它看起来像这样:
if 1 = 1 then
call removeLastOccurringStringFromString(sSqlQuery, ")")
sSqlQuery = sSqlQuery & "bar bar bar"
end if
但是,我发现很难掌握Right()
Left()
和Mid()
功能。
我试过的是这样的:
nLen = InStrRev(sSqlSokUrval, ")") ' To get the positional value of the last ")"
在那之后,我完全迷失了。因为如果我用它作为子串,Mid()
我只会得到“)”而没有别的。
任何关于如何解决这个问题的想法和/或提示将不胜感激!谢谢!