Исправляет автоматическое заполнение строк из-за длины типа данных.Рассмотрим следующее:
DECLARE @Test CHAR(10), @Test2 CHAR(10)
SET @Test = 'test'
SET @Test2 = 'Test2'
SELECT LEN(@Test), LEN(@Test + '_') - 1, LEN(@Test2), LEN(@Test2 + '_') - 1
Это вернет 4, 10, 5 и 10 соответственно.Даже если для @Test не использовались конечные пробелы, он по-прежнему сохраняет длину 10. Если LEN не обрезал конечные пробелы, то LEN(@test)
и LEN(@Test2)
будут одинаковыми.Чаще всего люди хотят знать длину значимых данных, а не длину автоматического заполнения, поэтому LEN удаляет конечные пробелы.Существуют обходные пути / альтернативы, где это не является обязательным поведением.