sqlserver2005 中的nvarchar(50)类型字段用一个简单的查询语句出错

cf9806 2007-08-25 01:13:07
我的查询语句是:select * from t_user_info where user_name='111' and true_name = '张三'
其中user_name和true_name 都是nvarchar(50)类型,当里面的值是汉字时就是查询不到,改成数字或字母时又可以查到,不为什么啊?大家帮忙看看了.
...全文
154 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
cf9806 2007-08-25
  • 打赏
  • 举报
回复
这样啊...以前都是用2000,才用的2005没想到变化还挺大的...谢谢了....
Limpire 2007-08-25
  • 打赏
  • 举报
回复
ASCII码1个字节,UNICODE码时2个字节。

数字和字母都是ASCII码,转换成UNICODE码只须高位补0,数值上一样的。

所以“数字或字母时又可以查到”。
Limpire 2007-08-25
  • 打赏
  • 举报
回复
N'张三'

表示“张三”是 Unicode 类型,才和 nvarchar 类型匹配。
cf9806 2007-08-25
  • 打赏
  • 举报
回复
请问为什么要在前面加个"N"呢?
Limpire 2007-08-25
  • 打赏
  • 举报
回复
select * from t_user_info where user_name=N'111' and true_name = N'张三'

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧