Как SQL Server обрабатывает пробелы в подстроке / LEFT? - PullRequest
1 голос
/ 19 октября 2011

Как SQL Server обрабатывает пробелы в подстроке / LEFT?

Если в подстроке / в левой части есть пробел, то я получаю другое значение, чем при наличии текста.Есть ли для этого документация?

DECLARE @st_Spaces char(25)
DECLARE @st_NoSpaces char(25)

SET @st_Spaces = '123 56'  --One space, pos 4
SET @st_NoSpaces = REPLACE(@st_Spaces, ' ', '4') --Replace space w/ 4


SELECT LEN(LEFT(@st_Spaces, 4)), --Returns 3
LEN(LEFT(@st_NoSpaces,4)) --Returns 4

Ответы [ 3 ]

3 голосов
/ 19 октября 2011

Это прямо в документации для LEN .

Возвращает количество символов указанного строкового выражения, , исключая конечные пробелы .(выделение добавлено)

0 голосов
/ 19 октября 2011

LEN(...) не учитывает конечные пробелы. Вы можете проверить это, выполнив:

SELECT LEN('    '); -- returns 0
SELECT LEN('A   '); -- returns 1
SELECT LEN('  A '); -- returns 3
0 голосов
/ 19 октября 2011

LEN() исключает конечные пробелы, где вы получаете различные значения длины.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...