我有一张表,表中有一列存储的是人名,用的是nvarchar
------TableA--------------
===========================
Name text
王小七 哦
===========================
现在发现为什么用
select * from TableA where Name='王小七'
或者
select * from TableA where LTrim(RTrim(Name))='王小七'
都找不到这条记录???只有用select * from TableA where Name like '%王小七%'
才找得到??可以跟我讲讲为什么吗?
------TableA--------------
===========================
Name text
王小七 哦
===========================
现在发现为什么用
select * from TableA where Name='王小七'
或者
select * from TableA where LTrim(RTrim(Name))='王小七'
都找不到这条记录???只有用select * from TableA where Name like '%王小七%'
才找得到??可以跟我讲讲为什么吗?
select * from TableA where LTrim(RTrim(Name))=N'王小七'
有些不能显示 的要加上N
看看联机帮助 国际化 部分,
insert into tb values(N'王小七')
goselect * from tb where Name = '王小七' select * from tb where Name = N'王小七' drop table tb/*
name
----------
王小七(所影响的行数为 1 行)name
----------
王小七(所影响的行数为 1 行)
*/
select * from TableA where Name=N'王小七'
这样也找不到....我用的是nvarchar(10)
select * from TableA where REPLACE(REPLACE(REPLACE(LTrim(RTrim(Name)),CHAR(9),''),CHAR(10),''),CHAR(13),'')=N'王小七'