2011-02-25 3 views
3

Si je recherche 'Jose' le résultat est 0. Si je cherche 'Josè' et 'Jôse' donne aussi aucun résultat.Comment trouver des noms avec des caractères spéciaux comme 'José' sur MS SQL-Server

select name from TblName where name = 'Jose' or name = 'Josè' or name = 'Jôse' 

Je connais le remplacement avec? : where name like 'Jos?' or name like 'J?se' Mais c'est très inconfortable et qui sait s'il n'y a pas une forme spéciale de 's'?

Je veux rechercher 'Jose' et obtenir toutes les variantes de celui-ci avec tous les caractères spéciaux possibles sur tous les caractères simples; comment ça?

Répondre

9

Voir How do I perform an accent insensitive compare (e with è, é, ê and ë) in SQL Server?

En appliquant un ordre spécifique collation à votre sélection:

SELECT * 
FROM Venue 
WHERE Name COLLATE SQL_Latin1_General_CP1_CI_AI Like '%cafe%' 

Le CI est synonyme de "cas Insensible" et AI pour "Accent Insensible".

Si vous êtes français, cet article peut également aider: Remplacer les accents dans une chaîne.

+2

C'est une bonne solution, je suis d'accord, mais sur des tables énormes, je pense que la performance va vers le sud, n'est-ce pas? – Ice

Questions connexes