SQL Server - 使用LIKE语句搜索包含国际字符的字符串

3

我有一个字段名为“描述”,其中可以包含任何Unicode字符的产品描述。

如果我使用LIKE条件(搜索的单词不含国际字符)搜索包含国际字符的描述,我会得到以下结果:

例如: 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%”进行检索?

你正在使用哪个SQL变体? - CResults
你从哪里得到ü这个符号?我的瑞士德语键盘上没有它。 - gbn
我刚刚从我的数据库中复制了它。 - Nikhil
使用Windows的德语键位映射,我按下shift-[键可以得到Ü - egrunin
2个回答

5

对于普通的varchar类型,你需要强制转换为不区分大小写的排序规则

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

尽管您提供的SQL有所不同,但是这些调用之间不应该有任何区别。


2

这将取决于列的排序顺序。如果您使用例如SQL_Latin1_General_CP1_CI_AI,则应该可以工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接