在 MS Access 我有一列“测试”:
我想显示一个新列,其中删除第一个字母之前的所有内容,例如:
我尝试使用 mid()和 InStr()函数如下:
Select
mid([Test], InStr([Test], '[az-AZ]')) as FilteredColumn
From TableA;
这应该通过 InStr()函数返回一个字母的第一次出现,并使用该位置作为 mid()函数的起点。
不幸的是,这不起作用。我也用 left()而不是 mid()尝试过,但没有成功。
你没有描述错误,但我猜你得到Invalid procedure call or argument
错误。
InStr
函数可以搜索字符串,而不是模式
所以当它找不到字符串[az-AZ]
时返回0
Mid
函数需要一个大于 0 的数字,因此会抛出一个错误
解决方法是在字符串中查找空格字符,如果存在,则提取它之后的部分:
SELECT IIf(InStr(Test, ' ') > 0, Mid(Test, InStr(Test, ' ') + 1), Test)
FROM ...
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(17条)