T-SQL匹配特殊字符。 Pre应该匹配Pré

问题描述:

我有一个公司名称列表,用户必须输入他的公司名称才能进入系统。假设我们有公司“PréABC”,现在我希望用户能够输入“Pre”或“Pré”。T-SQL匹配特殊字符。 Pre应该匹配Pré

首先,我认为这是LIKE语句的内置功能,但不幸的是它不是。有什么想法吗?

+0

这真的很有趣,我几天前才读到这个,并且遇到了这个问题。 适合我在这个问题上的审查;) – Sung 2009-07-15 15:53:11

这与排序规则有关。每个数据库都有自己的排序规则(任何列也可以覆盖该排序规则)。就你而言,你正在寻找一个不区分重音的归类,而不区分大小写。尝试将数据库配置为“SQL_Latin1_General_CP1_CI_AI”。这解码为“代码页1,不区分大小写,不区分变音”,这应使您的查询按需工作。

+0

当我查找整理顺序的完整语法时,打我。这也是数据库全球化的优势,所以整个系统就是这样工作的。 – Godeke 2009-07-15 15:32:38

+0

这似乎工作。然而,我并没有在完​​整的数据库上做,而是在具体的数据库上进行: table.X COLLATE SQL_Latin1_General_CP1_CI_AI = @Name COLLATE SQL_Latin1_General_CP1_CI_AI – Zyphrax 2009-07-15 15:53:08

SELECT 1 
WHERE N'Pré ABC' COLLATE LATIN1_GENERAL_CI_AI LIKE N'%Pre%'