修剪,向左,向右,中间?

时间:2018-10-25 20:32:19

标签: sql ms-access-2016

我在表中有一个看起来像这样的字符串列表

John Doe 2015 Toyota
Bob Smith 2017 Dodge
Sally Simms 2015 Ford

我想删除数字末尾第一个或两个空格的第一个实例之前的所有内容。我想留下来:

2015 Toyota
2017 Dodge
2015 Ford

我尝试了Instr和InsrtRev的所有组合,包括Left,Right和Mid。有人可以帮助我提供查询代码。这是我的最后一次尝试,但无效:

Vehicle: Mid([My_Field],InStrRev(InStrRev(1,[My_Field]," ")+1,[My_Field]," "))

2 个答案:

答案 0 :(得分:1)

这在MS Access中是如此令人不快。但是这样的事情应该起作用:

select switch(my_field like "* 2*", mid(my_field, instr(my_field, " 2") + 1, 100),
              my_field like "* 1*", mid(my_field, instr(my_field, " 1") + 1, 100),
              my_field like "*  *", mid(my_field, instr(my_field, "  ") + 1, 100),
              1=1, my_field
             )
from t;

答案 1 :(得分:1)

您可以使用此修改后的表达式缩回最后两个单词:

Vehicle: Mid([My_Field],1+InStrRev([My_Field]," ",InStrRev([My_Field]," ")-1))

,最后两个字:

Vehicle: Mid([My_Field],1,InStrRev([My_Field]," ",InStrRev([My_Field]," ")-1)-1)