#sql #sql-server
#sql #sql-сервер
Вопрос:
Я пытаюсь преобразовать из одной строки в несколько строк на основе определенного символа Я скопировал скрипт от кого-то, кто работал с его / ее примером, но не работал у меня, как показано ниже
;WITH tmp(NOTEINDX, DataItem, TXTFIELD) AS
(
SELECT
NOTEINDX,
LEFT(TXTFIELD, CHARINDEX('#', TXTFIELD '#') - 1),
STUFF(TXTFIELD, 1, CHARINDEX('#', TXTFIELD '#'), '')
FROM SY03900
UNION all
SELECT
NOTEINDX,
LEFT(TXTFIELD, CHARINDEX('#', TXTFIELD '#') - 1),
STUFF(TXTFIELD, 1, CHARINDEX(',', TXTFIELD '#'), '')
FROM tmp
WHERE
TXTFIELD > ''
)
SELECT
NOTEINDX,
DataItem
FROM tmp
ORDER BY NOTEINDX
Однако я получаю сообщение об ошибке ниже
Msg 402, Level 16, State 1, Line 6
The data types text and varchar are incompatible in the add operator.
Я использую SQL Server 2008
Спасибо,
Хатим
Комментарии:
1. Вам нужно преобразовать текстовое поле в поля varchar(), stuff () не будет работать с текстовыми полями