我的数据库中有一些内容(对于我们的语言)有“奇怪的”字符。
例如:
Å
在Sql Server中使用带有like
字母的A
语句时,这不会返回结果,因为Å
不是A
。
SqlServer中是否有办法将Å
视为E
(é
视为“e
”等?
答案 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()