如何获得一个带有包含或不包含特殊字符的单词的查询? 例如,我有这样的数据:“NÃO”,如果我通过输入“NAO”进行搜索,您应该将此信息返回给我。反过来,如果我有:“ANTONIO”并且我写“ANTÓNIO”,ANTÓNIO应该回到我身边。 我使用此代码但它不起作用:
SELECT * FROM PESSOA WHERE NOME like '%'+ @PROCURAR + '%'
答案 0 :(得分:2)
重音敏感和重音不敏感搜索可以使用Latin1_general_CI_AI
例如,如果Accent Insensitive,ñNTONIO和 ANTONIO 是相同的。
在下面的查询Latin1_general_CI_AI
中可以分解为以下部分。
latin1
使服务器使用charset latin 1处理字符串,基本上是ascii。
CI 指定不区分大小写,因此“ABC”等于“abc”。
您的查询应如下所示:
SELECT * FROM table_name WHERE field_name COLLATE Latin1_general_CI_AI Like '%ANTONIO%' COLLATE Latin1_general_CI_AI
预期结果如下:
Id name
1 ÃNTONIO
2 ANTÓNIO
3 ANTONIO
4 ANTÓNIÓ
答案 1 :(得分:1)
SELECT *
FROM PESSOA
WHERE NOME COLLATE Latin1_General_CI_AI Like '%'+ @PROCURAR + '%'
COLLATE Latin1_General_CI_AI
请访问Latin1_General_CI_AI
in sql server, what is: Latin1_General_CI_AI versus Latin1_General_CI_AS