Решение для заказа String_Split - PullRequest
0 голосов
/ 19 июня 2020

Ситуация:

У меня есть столбец, который я импортировал на SQL сервер из плоского файла, теперь этот столбец имеет массивное текстовое строковое значение [no в других столбцах такая массивная строка] . Итак, что мне нужно сделать, это String_Split столбец и вставить его в несколько строк. Однако значения разделителей - это разные пути к файлам документов, разные версии которых указаны в конце пути.

Запрос Split_String

select value as [New DOS file], [DOS file]
from [Document Dataset]
cross apply string_split([DOS file], '|')

Проблема:

Что происходит, когда вы выполняете запрос Split_String, столбец [New DOS file] значения автоматически упорядочивается в алфавитном порядке. Однако мне нужно добавить Row_Num, сгруппированный по [DOS file], но упорядоченный по номеру версии, который находится рядом с концом строки на [New DOS file].

Пример данных, как показано в excel :

Пример данных 1

Я хочу, чтобы данные выглядели так, как показано в Excel:

Образец данных 2

Запрос:

Есть ли особый синтаксис, который я могу добавить к моему String_Split запросу, который дает желаемый результат?

1 Ответ

0 голосов
/ 19 июня 2020

Итак, я разместил следующий вопрос на всякий случай, если у кого-то возникнет аналогичная ситуация, потому что я нашел для него ответ.

Решение:

select value as [New DOS file], [DOS file], A.B as Row_Num
from [Document Dataset]
cross apply (
    select value, row_number() over(order by current_timestamp) as B
    from string_split([DOS file], '|')
) A
order by value
...