我有一个简单的表:过滤Unicode列 - 以大量的数据匹配
CREATE TABLE [dbo].[Users]([Surname] [nvarchar](50) COLLATE Latin1_General_CI_AI NULL) ON [PRIMARY]
两行:
Paweł
Pawel
发行以下的select语句:
SELECT *, CAST(Surname AS VARBINARY(30)) AS Expr1, CAST(N'Paweł' AS VARBINARY(30)) AS Expr1
FROM Users WHERE Surname = N'Paweł'
得出以下结果:
Paweł 0x50006100770065004201 0x50006100770065004201
Pawel 0x50006100770065006C00 0x50006100770065004201
具有值'Pawel'的行即使不等于'Paweł'(二进制列显示它),也会返回。
任何想法是怎么回事,在这种情况下,SQL Server如何考虑Pawel =Paweł?
谢谢你,帕维尔