Я пытаюсь найти шаблон одного столбца в другом столбце и пытаюсь извлечь числа.
Моя таблица:
ID aggregatedID
-----------------------
12345 null
234567 null
34567 null
316645 null
ID_666 12345@20200131.000@@@|234567@20200131.000@@@|34567@20200131.000@@@|316645@20200131.000@@@
В моей таблице первые 4 идентификатора существуют в aggregatedID
с конкатенацией специальных символов. Я должен получить идентификатор, т.е. ID_666
и обновить первые 4 идентификатора, где aggregatedId
имел их с другим столбцом.
Это мой ожидаемый результат:
ID aggregatedID Agg_ID
--------------------------------
12345 null ID_666
234567 null ID_666
34567 null ID_666
316645 null ID_666
ID_666 12345@20200131.000@@@|234567@20200131.000@@@|34567@20200131.000@@@|316645@20200131.000@@@
Я пытался с подстрокой .ie извлечь число после '|' и перед '@' + первое число перед '@'
SUBSTRING(aggregatedID,CHARINDEX('|',aggregatedID)+1,LEN(aggregatedID))
Но это возвращает всю строку после первого '|'.
Я пытался сопоставить aggregatedID
с идентификатором, используя лайк, но не получал никаких данных.
select ID, aggregatedId
from table m
where m.aggregatedID like'%' + ID + '%'
Может кто-нибудь помочь мне с тем, что мне не хватает?