我有一张表,表中有一列存储的是人名,用的是nvarchar
------TableA--------------
===========================
Name           text
王小七           哦
===========================
现在发现为什么用
select * from TableA where Name='王小七'
或者
select * from TableA where LTrim(RTrim(Name))='王小七'
都找不到这条记录???只有用select * from TableA where Name like '%王小七%'
才找得到??可以跟我讲讲为什么吗?

解决方案 »

  1.   

    select * from TableA where Name=N'王小七' 
    select * from TableA where LTrim(RTrim(Name))=N'王小七' 
      

  2.   

    select * from TableA where Name=N'王小七' 这是国际化的内容,
    有些不能显示 的要加上N
    看看联机帮助 国际化 部分,
      

  3.   

    create table tb(name nvarchar(10))
    insert into tb values(N'王小七')
    goselect * from tb where Name = '王小七' select * from tb where Name = N'王小七' drop table tb/*
    name       
    ---------- 
    王小七(所影响的行数为 1 行)name       
    ---------- 
    王小七(所影响的行数为 1 行)
    */
      

  4.   

    --TRY
    select * from TableA where Name=N'王小七' 
      

  5.   


    这样也找不到....我用的是nvarchar(10)
      

  6.   

    --TRY
    select * from TableA where REPLACE(REPLACE(REPLACE(LTrim(RTrim(Name)),CHAR(9),''),CHAR(10),''),CHAR(13),'')=N'王小七'