SQL Server - 使用LIKE子句搜索带有国际字符的字符串

时间:2010-04-07 18:21:32

标签: sql sql-server tsql sql-server-2008 pattern-matching

我有一个字段'Description',可以包含任何unicode字符的产品说明。 如果我搜索包含国际字符的描述,并且具有LIKE条件(搜索的单词没有国际字符),我会得到以下结果:

Ex:GEWÜRZTRAMINER是其中一个说明。 当我这样做时:

Select * from table where Description LIKE '%GEWURZTRAMINER%', it retrieves the entry.

当我这样做时:

Select * from table where Description LIKE '%GEWURZ%', the entry is not retrieved.

(注意:搜索条件不包括Ü但有U)

有没有解决方法,以便我可以使用'%GEWURZ%'进行检索?

2 个答案:

答案 0 :(得分:5)

对于bog标准varchar,您必须强制使用重音不敏感的排序规则

Select 1 where 'GEWÜRZTRAMINER' COLLATE LATIN1_GENERAL_CI_AI LIKE '%GEWURZTRAMINER%'

对于您提供的SQL,调用之间应该没有区别。

答案 1 :(得分:1)

这取决于列的归类顺序。如果你使用例如它应该工作SQL_Latin1_General_CP1_CI_AI