SQL-запрос для поиска шаблонов по определенной строке - PullRequest
0 голосов
/ 08 ноября 2018

В настоящее время я работаю с таблицей, содержащей список из сотен образцов номеров деталей для целей скидок. Например:

1) [FR]08-[01237]0[67]4E-%
2) _10-[01]064[CD]-____
3) F12-[0123]0[67]4C-%

У меня есть критерий поиска строки: F10-1064C-02TY, и я пытаюсь выяснить, какой шаблон (ы) соответствует этой конкретной строке. Для этого примера мой запрос вернул бы второй шаблон. Цель состоит в том, чтобы найти правильную скидку на запасную часть на основе сопоставленных шаблонов.

Каков наилучший подход к решению этого типа проблемы? Существует ли простой и элегантный подход или он включает в себя некоторую сложную процедуру TSQL?

1 Ответ

0 голосов
/ 08 ноября 2018

Образцом для правой части предложения LIKE может быть любое выражение, которое включает значения из таблицы. Это означает, что вы можете использовать таблицу шаблонов в запросе, т.е.

SELECT PatternId, Pattern
FROM Patterns
WHERE 'F10-1064C-02TY' LIKE Pattern

Вы можете построить отсюда - если ваши номера деталей хранятся в другой таблице, присоединитесь к этой таблице, используя предложение LIKE в качестве критерия соединения, или создайте процедуру, которая принимает параметр номера детали, или что-то еще, соответствующее вашим требованиям .

...