следующий код:
if (right(@eqlist,2) = ', ')
set @eqlist = left(@eqlist,len(@eqlist)-2)
дает другие результаты (с теми же данными) на моем производственном сервере, чем на моем сервере разработки.
Проблема в том, что функция LEN 'должна' обрезать завершающие пробелы перед вычислением длины строки, но на моем сервере разработки это, похоже, не выполняется.
На моем сервере разработки он работает нормально и удаляет завершающий символ ',' из строки, но на рабочем сервере он удаляет дополнительный символ. Очевидно, что изменение «-2» на «-1» устраняет проблему для рабочего сервера, но затем - для сервера разработки.
Я переписал код так, чтобы он работал согласованно на обоих серверах, но я все же хотел бы знать, почему функция LEN ведет себя по-разному на каждом сервере.
Переписанный код:
if (right(@eqlist,2) = ', ')
set @eqlist = left(rtrim(@eqlist),len(rtrim(@eqlist))-1)