Len () обрежет (удалит завершающие пробелы) из данных.
Функция DataLength () не
Примеры:
Выберите Len («Тест»)
- это вернет 4
Выберите DATALENGTH («Тест»)
- это вернет 5
ДАЛЕЕ (обобщено из других фантастических и полезных ответов):
DATALENGTH возвращает длину строки в байтах, включая завершающие пробелы
http://msdn.microsoft.com/en-us/library/ms173486(SQL.90).aspx
LEN возвращает длину в символах, исключая завершающие пробелы
http://msdn.microsoft.com/en-us/library/ms190329.aspx
Поскольку строки могут состоять из одного или 2 байтов (Unicode), результаты использования любого из них будут различаться в зависимости как от типа данных строки, так и от наличия пробелов в строке
Например,
ВЫБРАТЬ
LEN ( 'строка'),
LEN («строка»),
DATALENGTH ( 'строка'),
DATALENGTH ('строка'),
LEN (N'string '),
LEN (N'string '),
DATALENGTH (N'string '),
DATALENGTH (N'string ')
вернется
6, 6, 6, 7, 6, 6, 12, 14