Ваша модель данных неверна, неверна, неверна. Вы должны это исправить! Почему это неправильно?
- Вы не должны хранить несколько значений в столбце.
- Вы не должны хранить числа в виде строк.
- У вас должно быть правильно объявленные отношения внешнего ключа.
- SQL Сервер (и SQL в целом) имеют ужасные возможности обработки строк.
- SQL имеет отличный способ хранить списки значений. Это называется ТАБЛИЦА!
Иногда мы зацикливаемся на очень, очень, очень плохих решениях других людей. Если да, вы можете делать то, что хотите, но запрос не будет эффективным:
select rf.reviewid, d.bucket as driver
from reviewfactable rf cross apply
string_split(rt.driver, ',') s join
driverdimenstiontable dd
on s.value = dd.driver;
Вы также можете express это, используя like
:
select rf.reviewid, d.bucket as driver
from reviewfactable rf join
driverdimenstiontable dd
on concat(',', s.value, ',') like concat('%,' dd.driver, ',%');