Я пытаюсь написать запрос SQL, в котором мне нужно разделить строковое значение на основе списка значений, существующих в справочной таблице.
Например, у меня есть строковое значение "JOHN DOE SILVER" "и значение" JOHN "присутствует в справочной таблице, я хочу получить" JOHN "в результате.
В справочной таблице есть только один столбец со всеми значениями, которые можно найти в строка. Значение всегда находится в начале строки. У меня могут быть пробелы в значении, например:
String = "EXAMPLE STRING TEST"
Значение в справочной таблице = "EXAMPLE STRING "
Результат должен быть =" ПРИМЕРНАЯ СТРОКА "
Я не уверен, как я могу это сделать ... Я думаю, что сначала мне нужно разбить строку на основе на "если значение в его начале присутствует в справочной таблице" ... но я не знаю, как.
Я надеюсь, что это достаточно ясно, чтобы кто-то мог помочь мне в этом!
Edit :
, поскольку это кажется недостаточно ясным, я пытаюсь уточнить.
Фактически мне нужно заполнить столбец в my_table значением из reference_table , когда он найден в начале «тестовой строки» my_table. См. http://sqlfiddle.com/#! 4 / cbd72 / 1 для попытки проверить ваши ответы
Примечания:
- Я могу иметь аналогичные значения в справочной таблице и Мне нужно взять самое длинное ("CHEMIN RURAL" против "CHEMIN", например)
- Если значение не найдено, то в заполненном столбце нет значения (например, соединение слева в my_table)
- строка для поиска всегда в начале строки в my_table