Sql LEN函数对同一文本的作用不同
我有一个列为nvarchar(50)的表,我想选择文本的长度 结果非常不同: 第一个有效DMC为34长,第二个有效DMC为36长,第三个和第四个有效DMC为32长。结果是其他,38,40,36和32。 对于failstop,也有不同的结果,38和8 如果我在没有桌子的情况下尝试,它会正常工作。例如:Sql LEN函数对同一文本的作用不同,sql,string-length,Sql,String Length,我有一个列为nvarchar(50)的表,我想选择文本的长度 结果非常不同: 第一个有效DMC为34长,第二个有效DMC为36长,第三个和第四个有效DMC为32长。结果是其他,38,40,36和32。 对于failstop,也有不同的结果,38和8 如果我在没有桌子的情况下尝试,它会正常工作。例如: declare @DMC as nvarchar(50); set @DMC = 'failstop' select LEN(RTRIM(REPLACE(@DMC, CHAR(32), '')))
declare @DMC as nvarchar(50);
set @DMC = 'failstop'
select LEN(RTRIM(REPLACE(@DMC, CHAR(32), ''))) as Result
结果=8
我做错了什么?您在表上使用了什么查询?请查看第35个字符是什么
选择前1个unicode(子字符串(DMC,35,1))
您对表执行的查询是什么?在SQL Server中,LEN不计算尾随空格,但它会计算其他隐藏字符,即TAB、CR、LF等。我认为这就是@AlexK。如果您对字符列真正包含的内容有任何疑问,请尝试selectconvert(VARBINARY(MAX),column)
和selectdatalength(column)
,这应该会解决问题。SSMS不擅长显示空白和不可打印字符。