Tsql 忽略特殊unicode字符的字符串比较

Tsql 忽略特殊unicode字符的字符串比较,tsql,sql-server-2014,string-comparison,character-set,Tsql,Sql Server 2014,String Comparison,Character Set,我有一张桌子,上面有各种语言的城市名称。这些名称通常包含诸如é,ü等字符。我正在构建一个搜索功能,以便用户可以搜索名称,但我希望这样做可以忽略所有特殊字符,并将其视为英语26个字母表中的字母 例如,对名称munchen的查询应与值München匹配。查询将比较的两侧转换为不区分大小写的26个字母的字母,然后执行比较 有没有一种简单的方法可以实现这一点?这些角色在任何方面都不特殊。匹配和排序受列排序规则的影响-指定排序顺序和匹配的字符 排序规则可以区分大小写,它指定Mary是否被视为等于Mary。

我有一张桌子,上面有各种语言的城市名称。这些名称通常包含诸如
é
ü
等字符。我正在构建一个搜索功能,以便用户可以搜索名称,但我希望这样做可以忽略所有特殊字符,并将其视为英语26个字母表中的字母

例如,对名称
munchen
的查询应与值
München
匹配。查询将比较的两侧转换为不区分大小写的26个字母的字母,然后执行比较


有没有一种简单的方法可以实现这一点?

这些角色在任何方面都不特殊。匹配和排序受列排序规则的影响-指定排序顺序和匹配的字符

排序规则可以区分大小写,它指定
Mary
是否被视为等于
Mary
。它也可以是重音敏感的或不敏感的,它指定
Munchen
是否等于
München

要将
Munchen
München
匹配,只需对该列使用不区分重音的排序规则,例如:

create table Cities (
    id int identity primary key,
    Name nvarchar(200) COLLATE Latin1_General_CI_AI ,
    INDEX IX_Cities_NAME (Name)
)

insert into Cities (Name)
values ('London'), ('München'), ('Munchen')

select * 
from Cities 
where Name = N'mUnchen'
结果是:

Name
--------
München
Munchen

我没有将
Name
作为主键,因为我无法同时插入
München
Munchen
,我会遇到主键冲突

这些字符在任何方面都不特殊。匹配和排序受列排序规则的影响-指定排序顺序和匹配的字符

排序规则可以区分大小写,它指定
Mary
是否被视为等于
Mary
。它也可以是重音敏感的或不敏感的,它指定
Munchen
是否等于
München

要将
Munchen
München
匹配,只需对该列使用不区分重音的排序规则,例如:

create table Cities (
    id int identity primary key,
    Name nvarchar(200) COLLATE Latin1_General_CI_AI ,
    INDEX IX_Cities_NAME (Name)
)

insert into Cities (Name)
values ('London'), ('München'), ('Munchen')

select * 
from Cities 
where Name = N'mUnchen'
结果是:

Name
--------
München
Munchen

我没有将
Name
作为主键,因为我无法同时插入
München
Munchen
,我会遇到主键冲突

您使用的是Sybase还是SQL Server?什么版本?对不起,@ZoharPeled。我使用SQL Server 2014。Unicode中没有特殊字符。尤其不是普通的拉丁字母。你到底想干什么?将所有内容转换为英语是解决这一问题的一种尝试,但除了一些非常有限的情况外,它不会起作用。@PanagiotisKanavos是正确的,我甚至没有想到这一点……如果您使用不区分重音的排序规则,那么Munchen可以匹配Munchen。SQL Server的全文搜索功能已经可以处理此类匹配,无论排序规则如何。任何一个搜索引擎都能处理这个问题你是在使用Sybase还是SQL Server?什么版本?对不起,@ZoharPeled。我使用SQL Server 2014。Unicode中没有特殊字符。尤其不是普通的拉丁字母。你到底想干什么?将所有内容转换为英语是解决这一问题的一种尝试,但除了一些非常有限的情况外,它不会起作用。@PanagiotisKanavos是正确的,我甚至没有想到这一点……如果您使用不区分重音的排序规则,那么Munchen可以匹配Munchen。SQL Server的全文搜索功能已经可以处理此类匹配,无论排序规则如何。任何搜索引擎都可以处理这个问题