代码之家  ›  专栏  ›  技术社区  ›  dragonfly

筛选SQL Server 2005中的Unicode列-与许多数据匹配

  •  3
  • dragonfly  · 技术社区  · 14 年前

    我有一张简单的桌子:

    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_

    谢谢,pawe_

    2 回复  |  直到 14 年前
        1
  •  3
  •   Denis Valeev    14 年前

    Latin1_General_CI_AI

    select 1 where N'Pawel' = N'Paweł' collate Latin1_General_100_CI_AS
    

        2
  •  3
  •   Joe Stefanelli    14 年前

    Latin1_General_CI_AS