小菜鸟来请教sql-server-select查询问题

我打算查询大于5个汉字的字段,所以我写了一条这样的语句:
select top 1000
Name from
hotel.dbo.cdsgus
where
len(ltrim(rtrim(name)))>5
但是返回的结果确差点亮瞎了我的狗眼。。。。
请看下图
图片说明
为什么会有两个汉字和三个汉字的。。。忧桑!
我的sqlserver是2008,系统是XP,嗯…字段类型是nvarchar(2000),请各位伙伴帮忙解答

在sqlserver中,一个字符是占几个字节的,你去查一下,然后再换算一下。

select top 1000
Name
Len(Name) as x
from
hotel.dbo.cdsgus
where
len(ltrim(rtrim(name)))>5
这样写结果是什么?
按理说不会。

用len没问题,看看字符最后是不是有回车换行或者指标符

 select * from chartable
where charindex(char(10),t3)>0 
select * from chartable
where charindex(char(13),t3)>0 
select * from chartable
where charindex(char(9),t3)>0 

同意danielinbiti,检查是否有非打印字符,比如回车,直接复制执行下面的语句,会发现结果是长度是10 而不是2,就算是用了LTRIM和RTRIM

 SELECT LEN(LTRIM(RTRIM('    



王刚')))