Как найти иерархию потока электронной почты из этой таблицы.
ProductId | ParentId | Levels 1174 0 1174 311 1174 311, 1174 1186 311 1186, 311, 1174 448 1186 448, 1186, 311, 1174 3365 448 3365, 448, 1186, 311, 1174
Что я уже пробовал:
;With Parents(ProductId, ParentId, Levels) As( Select ProductId, ParentId, Levels From Products Where ParentId = 0 Union All Select p.ProductId, p.ParentId, p.Levels From Products p Join Parents cte On cte.ProductId = p.ParentId ) Select * From Parents
Из потока электронной почты
CROSS APPLY STRING_SPLIT(EmailThreadChildHashcode, ',')
)
Выберите * от @канавкой
Santosh kumar Pithani
Здравствуйте,пожалуйста, дайте один образец записи и ожидаемый результат, то его очень трудно понять.
Member 14156756
примерные данные уже объявлены в вопросе и пример Out put like :-
То Docid ParentDocId TheradGroupId ThreadLevel
13376 0 1 0
13377 13348 1 1
13379 13378 1 2
13380 13348 1 2
13371 13456 1 3
13372 13457 2 1
RedDk
После очень быстрого взгляда на то, что вы сделали, я могу сказать, что "выход" (четыре столбца) никогда не будет чем-то большим, чем контейнер из двух столбцов ... так что это последнее
надпись-это фантазия.См. ваш оператор "INSERT INTO @spli", где вы специально квантовали количество возвращаемых столбцов как два, [DocId] и [Dataa] ...
И посмотрите CROSS APPLY STRING_SPLIT в BOL ... что - то в этом банальном заполнителе с использованием apostrpphe выглядит не так. Возможно, это редактор CP. Я не знаю.
Member 14156756
я не знаю, как получить этот результат из этой таблицы. Я подумал, что сначала я разделю Родительский и дочерний хэш-код из столбца emailthreadchild, а после этого я сравню хэш-код с emailthreadparenthashcode и выведу там loaddocumentid. вот почему я использую функцию split_string. может быть, я ошибаюсь. но я стараюсь получить этот результат именно так..
RedDk
Хорошо,
Я реконструировал сценарий, используя данные по CREATE TABLE, и поскольку я использую SQLServer 2008, мне пришлось исследовать проблему выбора внутри SELECT с помощью UTF, который я получил отсюда:
https://stackoverflow.com/questions/10914576/t-sql-split-string
Но, поскольку STRING_SPLIT был изобретен и включен в SQL Server 2016, любые разговоры о его магических свойствах для меня потеряны. Я предлагаю пробежаться по этому потоку stackoverflow и узнать, что вы можете сделать, чтобы разрезать эту подстроку 2, 4 и 6 [EmailThreadChildHashcode], используя одно из решений response post ... Как я уже начал делать ... но у меня просто нет времени прямо сейчас, чтобы запустить этот фактический SUB SELECT (подсказка) ...
RedDk
Еще один ответ:
Я вижу, что в опубликованных данных нет выходных данных, соответствующих любому из [DocId], поэтому я должен предположить, что [LoadDocumentId] - это не одно и то же?
Member 14156756
Да, верно, это только для примера.