簡體   English   中英

過濾Sql server 2005中的unicode列 - 進行大量數據匹配

[英]Filtering unicode column in Sql server 2005 - to much data match

我有一個簡單的表:

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服務器如何考慮Pawel =Paweł?

謝謝,Paweł

您的排序Latin1_General_CI_AI對重音不敏感: Latin1_General_CI_AI

嘗試這樣的事情:

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

按預期返回任何內容。

整理中的“AI”代表“Accent Insensitive”。 要區分這兩者,您需要使用“AS”代替“Accent Sensitive”: Latin1_General_CI_AS

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM