关于查询条件为特殊字符的问题

xl711436 2009-11-18 10:35:12
公司来了个老外,名字比较特别, 其中有个字符 Å
在表里面显示都很正常,但是查询起来就有问题,


如表里面有一行记录如下:

EmployeeID EmployeeName
1 1Å


我用sql语句 select * from Employee where EmployeeName = '1Å'
则查不出结果,

如果将这行数据该下

EmployeeID EmployeeName
1 11

用sql语句 select * from Employee where EmployeeName = '11'

则可以查出结果。

用的是 sqlserver 2008 中文版, 经验证 2005也有同样的问题。


请问该如何解决此问题,使其能查到 这个 特殊的字符





...全文
132 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
忆轩辕 2009-11-18
  • 打赏
  • 举报
回复
这是排序规则的问题,你字段用nvarchar,查询用



select * from Employee where EmployeeName = N'1Å'



--小F-- 2009-11-18
  • 打赏
  • 举报
回复
select * from Employee where EmployeeName = N'1Å'
--小F-- 2009-11-18
  • 打赏
  • 举报
回复
这个是排序规则的问题
在前面加N'
字段用nvarchar或者varchar类型
icelovey 2009-11-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sql77 的回复:]
SQL codeselect*from Employeewhere EmployeeName= N'1Å'

字段用NVARCHAR类型,
插入前加N''
[/Quote]
UP
bancxc 2009-11-18
  • 打赏
  • 举报
回复

加 N'1Å'
好汉坡 2009-11-18
  • 打赏
  • 举报
回复
 
--> 测试数据: @tb
declare @tb table (EmployeeID int,EmployeeName Nvarchar(2))
insert into @tb
select 1,N'1Å' UNION
SELECT 2,N'B'

select * from @tb where EmployeeName = N'1Å'

EmployeeID EmployeeName
----------- ------------
1 1Å

(1 行受影响)
SQL77 2009-11-18
  • 打赏
  • 举报
回复
select *  from Employee where EmployeeName    = N'1Å' 

字段用NVARCHAR类型,
插入前加N''

22,206

社区成员

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

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