我在SQL Server中遇到问题。我想使用Ltrim和Rtrim删除空间。
我的查询就像这样
select len('test ')
返回6
select len(rtrim(ltrim('test ')))
返回6
为什么不删除空间?
我已检查此空间的ascii值为32。
任何帮助?
谢谢
答案 0 :(得分:7)
因为此字符串中没有空格 - 在test
之后有两个水平制表符(\t
)。
答案 1 :(得分:2)
对我来说没有意义:
SELECT LEN('test ')
应该返回4而不是6 - LEN()将 NOT 计算尾随空格。
然而,如果你这样做了:
SELECT DATALENGTH('test ')
这将返回6,因为DATALENGTH 计算尾随空格。
答案 2 :(得分:1)
Len Returns the number of characters of the specified string expression, excluding trailing blanks.
因此,len不计算字符串中的额外尾随空格。如果你把空白放在字符串之前,那么这些就会被计算在内。
答案 3 :(得分:0)
实际上,在这两种情况下,空间都会被修剪掉,而这在SQL服务器中是标准的。 (len做修剪)