Вы можете создать расчет соединения.Выделенный выпадающий список показывает, где это можно найти:
Поскольку формат идентификатора элемента в [Элемент описания] имеет некоторый шаблон, онможно извлечь с помощью регулярных выражений.Как вы упоминаете в своем вопросе, один из способов, которым может быть представлен идентификатор, - после «TO =», и похоже, что он заканчивается перед «_».Следующее вычисляемое регулярное выражение поле будет тянуть строку между ними:
REGEXP_EXTRACT([Member Desc],"([^TO=]*)(?=_)")
Результат должен правильно объединить два источника данных:
Выше приведен набросок, который, я надеюсь, направит вас на правильный путь.Я понимаю, что может быть несколько разных методов, в которых [ID члена] представляет себя, поэтому я не смогу точно определить регулярное выражение, но если вообще есть какой-либо шаблон, тогда приведенный выше формат должен работать.(т. е. даже если единственный шаблон состоит в том, что [ID участника] состоит из трех букв, за которыми следуют четыре цифры - или он всегда начинается с буквы A и заканчивается чем-то другим - и т. д.)
Regex также должен работать лучше, чемФункция содержит (), но имейте в виду, что функция должна искать через каждую строку в каждой строке, чтобы сделать соединение.
Изменить в ответ на комментарий:
Чтобы добавить несколько условий, попробуйте следующий метод:
IF LEN(REGEXP_EXTRACT([Member Desc],"([^FROM=]*)(?=,)")) > 0
THEN REGEXP_EXTRACT([Member Desc],"([^FROM=]*)(?=,)")
ELSEIF LEN(REGEXP_EXTRACT([Member Desc],"([^TO=]*)(?=,)")) > 0
THEN REGEXP_EXTRACT([Member Desc],"([^TO=]*)(?=,)")
ELSEIF [...Put as many of these as might match your pattern]
THEN [...Put as many of these as might match your pattern]
END
По сути, расчет идет внизсписок и пробовать каждую возможность.Я немного изменил ваш, чтобы посмотреть на длину (LEN ()) возвращаемого значения, которое должно сравнительно быстро сравниваться, так как это целое число.Поскольку этот расчет повторяет каждый ELSEIF и находит совпадение, он прекращает итерацию по списку - поэтому важно поместить наиболее вероятное совпадение вверху.Результатом вычисляемого поля должен быть идентификатор участника.Если совпадения не найдено, оператор ELSE на самом деле не нужен, потому что внутреннее соединение автоматически исключит его.
Редактировать в ответ на комментарий: Спасибо.Я вижу ваши рекомендации.