字符串与SqlServer中的“奇怪字符”进行比较

时间:2009-08-12 11:02:54

标签: sql-server string sql-server-2008

我的数据库中有一些内容(对于我们的语言)有“奇怪的”字符。

例如:

Å 

在Sql Server中使用带有like字母的A语句时,这不会返回结果,因为Å不是A

SqlServer中是否有办法将Å视为Eé视为“e”等?

2 个答案:

答案 0 :(得分:4)

你的意思是“Å作为A”还是“Å作为E”?

对于第一个,你可以强制整理以强调不敏感

SELECT 1 WHERE 'Å' = 'A'    --No
SELECT 1 WHERE 'Å' COLLATE LATIN1_General_CI_AI = 'A'   --Yes

SELECT 1 WHERE 'é' = 'e'    --No
SELECT 1 WHERE 'é' COLLATE LATIN1_General_CI_AI = 'e'   --Yes

答案 1 :(得分:2)

您可以在查询中包含COLLATE子句,以指定不区分重音的排序规则:

SELECT *
FROM your_table
WHERE your_column LIKE 'A%' COLLATE Latin1_General_CI_AI

您需要为您的语言使用适当的排序规则。内置的fn_helpcollations函数将为您提供所有支持的排序规则列表:

SELECT *
FROM fn_helpcollations()