Функция SQLServer SubString предлагает [параметр длины, переданный в функцию LEFT или SUBSTRING, недействителен] решение ошибки
①Перехватить содержимое до определенного символа, в противном случае вернуть эту строку.
case
when CHARINDEX ('-' , ISNULL(a.Depart,''))-1 >0 then CHARINDEX ('-' , ISNULL(a.Depart,''))-1
when CHARINDEX ('-' , ISNULL(a.Depart,''))-1 <=0 then LEN(ISNULL(a.Depart,''))
end, LEN(ISNULL(a.Depart,''))) OutDepart2
②Перехватить содержимое после определенного символа, в противном случае вернуть эту строку.
case
when CHARINDEX ('-' , ISNULL(a.Depart,'')) >0 then CHARINDEX ('-' , ISNULL(a.Depart,''))+1
when CHARINDEX ('-' , ISNULL(a.Depart,'')) <=0 then 1
end , LEN(ISNULL(a.Depart,''))) OutDepart2
Если у вас возникнут проблемы с SQL, вы можете остаться внизу и общаться вместе.