select name from table1 where rtrim(ltrim(name)) = '张三'
select name from table1 where rtrim(ltrim(name)) = N'张三'--or
select name from table1 where rtrim(ltrim(name)) like '%张三%'
select name from table1 where rtrim(ltrim(name)) like  N'%张三%'

解决方案 »

  1.   

    如果是数据库排序规则问题.请强制指定下排序规则collate Chinese_PRC_CS_AI --加了这个注释
      

  2.   

    字段类型?如果是char类型,大多是因为包含了多个' '字符的Padding。
      

  3.   

    系统是English,LIKE也不行,加collate Chinese_PRC_CS_AI也不行。
    企业管理器select正常的汉字,查询分析器select为乱码,将乱码复制粘贴到where子句就可以
    where name='复制过来的乱码' 通过,唉,真是烦死人。
      

  4.   

    字段類型是不是Nvarchar??如果系統是English,最好用Nvarchar來存中文字符.
      

  5.   

    谢谢和尚,查询分析器可正常显示汉字了,但where name = '张三'仍然不行。
      

  6.   

    你这样试一下,你在查询分析器中Select一下,然后把其中的一个名字从结果集中复制出来,、比如(‘张三’)select name from table1 where rtrim(ltrim(name)) = '粘贴到这里'
    再执行一下你的语句看行不行
      

  7.   

    你可以使用like '%你要查的东西%'看看你的那个字段是不是有问题
    因为有的时候可以存一些空白符(非打印字符),这些东西很犯人的,估计你的情况就是这样