Я пытаюсь разбить строку, когда ';'персонаж появляется.У меня есть список с проектами, где в одной из колонок указано, к какому району относится проект.Однако некоторые проекты появляются в нескольких районах и поэтому пишутся как «1; 2; 3» (Район 1, 2 и 3).Я хочу создать три строки из этого и разделить их на ';'.
Сообщение об ошибке гласит:
Сообщение 240, Уровень 16, Состояние 1, Строка 13
Типы не совпадают между якорем и рекурсивной частью в столбце «DataItem» рекурсивного запроса «tmp».
Я пробовал split_string, но обнаружил, что мой сервер 2014 и ему не хватает совместимости.
WITH tmp(Oppdragsnr, Kommune, DataItem, Kommunenr) AS
(
SELECT
Oppdragsnr,
Kommune,
LEFT(Kommunenr, CHARINDEX(';', Kommunenr + ';') - 1),
STUFF(Kommunenr, 1, CHARINDEX(';', Kommunenr + ';'), '')
FROM
oppdragene
UNION all
SELECT
Oppdragsnr,
Kommune,
LEFT(Kommunenr, CHARINDEX(';', Kommunenr + ';') - 1),
STUFF(Kommunenr, 1, CHARINDEX(';', Kommunenr + ';'), '')
FROM
tmp
WHERE
Kommunenr > ''
)
SELECT
Oppdragsnr,
Kommune,
DataItem
FROM
tmp
ORDER BY
Oppdragsnr
Я бы хотел, чтобы на выходе была новая таблица с новыми строками для каждого проекта, который появляется в нескольких районах.