MSDN上LEN()函数的说明 http://msdn.microsoft.com/en-us/library/ms190329.aspx:返回指定字符串表达式的字符数,排除尾随空格.
为什么 LEN() 函数设计成这样工作?这种行为解决了什么问题?
有关的 :
- SQL Server 中的 LEN 函数不包含尾随空格 https://stackoverflow.com/questions/2025585/len-function-not-including-trailing-spaces-in-sql-server
- charindex() 最后计算白字符,len() 在 T-SQL 中不计算 https://stackoverflow.com/questions/1253355/charindex-counts-whiteshars-in-the-end-len-doesnt-in-t-sql
它修复了由于数据类型长度而导致的字符串自动填充。考虑以下:
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)
and LEN(@Test2)
会是一样的。人们常常想知道有意义数据的长度,而不是自动填充的长度,因此 LEN 会删除尾随空白。有一些解决方法/替代方案,但这不是必需的行为。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)