传统SQL排序规则(“SQL”排序规则前缀)和二进制排序规则(“BIN”前缀)一次只比较单个字符,因此“Ϩ”永远不能等于“oe”。
Windows排序规则和Unicode比较使用更健壮的比较规则。这允许单个“✔”字符与两个连续字符“oe”进行比较,因为它们在语义上是相同的。
--Chlo because Unicode comparison equal
SELECT REPLACE(N'Chloe' COLLATE SQL_Latin1_General_CP1_CI_AS, 'Å', 'o');
--Chloe because legacy SQL comparison unequal
SELECT REPLACE('Chloe' COLLATE SQL_Latin1_General_CP1_CI_AS, 'Å', 'o');
--Chloe because binary comparison unequal
SELECT REPLACE('Chloe' COLLATE Latin1_General_BIN, 'Å', 'o');
--Chlo because Windows collation comparison equal
SELECT REPLACE('Chloe' COLLATE Latin1_General_CI_AS, 'Å', 'o');