Обрезать, влево, вправо, в середине? - PullRequest
0 голосов
/ 25 октября 2018

У меня есть список строк в таблице, которые выглядят примерно так

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

Я хочу удалить все до первого экземпляра числа или двух пробелов слева от конца.Я хочу оставить:

2015 Toyota
2017 Dodge
2015 Ford

Я перепробовал все комбинации Left, Right и Mid с вариациями Instr и InsrtRev.Может кто-нибудь, пожалуйста, помогите мне с кодом для моего запроса.Вот моя последняя попытка, и она не работает:

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

Ответы [ 2 ]

0 голосов
/ 26 октября 2018

Вы можете использовать это измененное выражение, чтобы убрать последние два слова:

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)
0 голосов
/ 26 октября 2018

Это так неприятно в 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;
...