AI 代表对口音不敏感(即确定咖啡厅 = 咖啡厅)。您可以使用 collate 关键字来转换一个(或两个)值的排序规则。
有关更多信息,请参阅链接:http: //msdn.microsoft.com/en-us/library/aa258237 (v=sql.80).aspx
示例:DBFiddle
--setup a couple of tables, populate them with the same words, only vary whether to accents are included
create table SomeWords (Word nvarchar(32) not null)
create table OtherWords (Word nvarchar(32) not null)
insert SomeWords (Word) values ('café'), ('store'), ('fiancé'), ('ampère'), ('cafétería'), ('fête'), ('jalapeño'), ('über'), ('zloty'), ('Zürich')
insert OtherWords (Word) values ('cafe'), ('store'), ('fiance'), ('ampere'), ('cafétería'), ('fete'), ('jalapeno'), ('uber'), ('zloty'), ('Zurich')
--now run a join between the two tables, showing what comes back when we use AS vs AI.
--NB: Since this could be run on a database of any collation I've used COLLATE on both sides of the equality operator
select sw.Word MainWord
, ow1.Word MatchAS
, ow2.Word MatchAI
from SomeWords sw
left outer join OtherWords ow1 on ow1.Word collate SQL_Latin1_General_CP1_CI_AS = sw.Word collate SQL_Latin1_General_CP1_CI_AS
left outer join OtherWords ow2 on ow2.Word collate SQL_Latin1_General_CP1_CI_AI = sw.Word collate SQL_Latin1_General_CP1_CI_AI
示例的输出:
MainWord
MatchAS
MatchAI
café
cafe
store
store
store
fiancé
fiance
ampère
ampere
cafétería
cafétería
cafétería
fête
fete
jalapeño
jalapeno
über
uber
zloty
zloty
zloty
Zürich
Zurich