Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql LEN函数对同一文本的作用不同_Sql_String Length - Fatal编程技术网

Sql LEN函数对同一文本的作用不同

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), '')))

我有一个列为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), ''))) as Result
结果=8


我做错了什么?

您在表上使用了什么查询?请查看第35个字符是什么
选择前1个unicode(子字符串(DMC,35,1))
您对表执行的查询是什么?在SQL Server中,LEN不计算尾随空格,但它会计算其他隐藏字符,即TAB、CR、LF等。我认为这就是@AlexK。如果您对字符列真正包含的内容有任何疑问,请尝试
selectconvert(VARBINARY(MAX),column)
selectdatalength(column)
,这应该会解决问题。SSMS不擅长显示空白和不可打印字符。