За исключением первого префикса, как мне сопоставить остальные данные - PullRequest
1 голос
/ 08 апреля 2020

Например,

Location
B014130030
SS010111
MA01
MA01
SMA01

Рассмотрим столбец как имя таблицы местоположений, скажем ORDERSHIPMENT - я пытаюсь сравнить MA01 с SMA01, поэтому игнорируя первый префикс 'S', теперь остальные слова должны совпадать, и мой запрос должен вернуть количество (отличное местоположение) как = 3

Ответы [ 3 ]

0 голосов
/ 08 апреля 2020

Для этого можно использовать подстановочный знак:

SELECT Location
FROM ORDERSHIPMENT
WHERE Location LIKE '%MA01';
0 голосов
/ 08 апреля 2020

Для этого можно использовать оператор like.

like Оператор соответствует шаблону символов. Что у вас общего в MA01 и SMA01 это MA01. Таким образом, вы должны соответствовать шаблону символов, где встречается MA01. Чтобы пропустить предыдущий символ (ы) S, вам нужно использовать % и поставить его перед MA01 - %MA01.

Бонус: если после MA01 есть символы, такие как MA01S, вы должны поставить % позже - MA01%

select count(*) from order_shipment where location like '%MA01';

Смотрите полную реализацию здесь - sqlfiddle .

0 голосов
/ 08 апреля 2020

Предполагая, что вы хотите сопоставить MA01, появляющийся либо в начале местоположения, либо с дополнительным одиночным ведущим символом, вы можете попробовать использовать REGEXP:

SELECT Location
FROM yourTable
WHERE Location REGEXP '^.?MA01';

Демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...