Я получаю следующую ошибку при попытке выполнить следующий запрос:
«Недопустимый параметр длины передан в функцию LEFT или SUBSTRING»
select A.NUMBER,
SUBSTRING(A.DESCRIPTION,
CHARINDEX(','+CAST(A.Description as VARCHAR(255)) + ',','from')+4,
CHARINDEX(','+CAST(A.Description as VARCHAR(255))+ ',','to')- 1)
from dbo.ACTIVITYM1 A
where A.DESCRIPTION like 'Reassignment from%'
Детали схемы:
- Activitym1: имя таблицы
- Описание : Колонка
- Номер : Колонка.
Пожалуйста, дайте мне знать, в чем причина этой ошибки.
A.Description содержит что-то вроде ниже
«Переназначение с PSM_Support на PPM_Support» Я пытаюсь получить PSM_Support в 1 столбце и PPm_Support в другом столбце.
SUBSTRING
— это длина подстроки, а не конечная позиция. Так что вам, вероятно, нужно вычесть начальную позицию. - person Barmar   schedule 09.10.2014select SUBSTRING('abcd',2,8000)
возвращаетbcd
. Более вероятно, что длина оказалась отрицательной и вызвала ошибку. - person Damien_The_Unbeliever   schedule 09.10.2014CHARIDEX
хочет, чтобы сначала выполнялся поиск текста, а затем второй. Я очень сомневаюсь, что вы найдете что-либо, содержащее две запятые (+ что бы там ни было в описании) внутри текстовfrom
илиto
. - person Damien_The_Unbeliever   schedule 09.10.2014