LEN() 函数是否在内部应用 TRIM()?

Kih*_*k J 1 sql sql-server

在计算字符串长度之前,SQLLEN()函数是否在内部TRIM()处理数据?

例子:

DECLARE @a VARCHAR(MAX), @b VARCHAR(MAX)
SET @a = '12345 '
SET @b = '12345 7'

SELECT @a, LEN(@a)
-- 12345    5

SELECT @b, LEN(@b)
-- 12345 7  7
Run Code Online (Sandbox Code Playgroud)

双方@a@b有7个字符。@a有 5 个数字字符,末尾有两个空格。

从结果窗口复制两个结果时,我可以看到两个变量的长度均为 7 个字符。但是当试图找到使用LEN()它的变量的长度时会有所不同。将数据存储在带有varchar列的表中时也会发生同样的事情。

huM*_*pty 5

它不包括尾随空格

根据LEN (Transact-SQL)

"返回指定字符串表达式的字符数,不包括尾随空格。 "

还有类似的问题

为什么 t-sql 的 LEN() 函数会忽略尾随空格?

LEN 函数不包括 SQL Server 中的尾随空格