JarAsh Posted February 17, 2015 Share Posted February 17, 2015 Bonjour à tous, J'ai un problème de requête tout bête dans SQL Server, voici ce que je veux faire : J'ai une table PERSONNES avec un champs PRENOM. Dedans j'ai une ligne avec un prénom Aur├⌐lien. J'aimerai faire un SELECT qui récupère la ligne par rapport au prénom, donc je fais : SELECT * FROM PERSONNES WHERE PRENOM = 'Aur├⌐lien' Mais ça ne me retourne aucune ligne. Pareil avec un LIKE : SELECT * FROM PERSONNES WHERE PRENOM LIKE 'Aur├⌐lien' Pourtant cela fonctionne : SELECT * FROM PERSONNES WHERE PRENOM LIKE 'Aur%' Les caractères spéciaux semblent ne pas être reconnus :( Une idée ? Merci. Link to comment Share on other sites More sharing options...
Sonic.blue Posted February 17, 2015 Share Posted February 17, 2015 Bonjour,une piste ici http://stackoverflow.com/questions/16475326/convert-all-data-in-sql-server-to-unicode Link to comment Share on other sites More sharing options...
r.chatigré Posted February 26, 2015 Share Posted February 26, 2015 Quand on n'arrive pas à utiliser "=" en SQL, il faut toujours vérifier le type de la colonne:Si tu as une colonne CHAR[xxx], les espaces comptent! "Aurélien " n'est pas "Aurélien". Transforme alors ta colonne en varchar. Si tu comptes mettre des accents et autres caractères diacritiques, utilise les types NCHAR/NVARCHAR qui évitent des problèmes d'encodage de caractère, et utilise le préfixe "N" pour tes chaînes en dur (ex: 'Aurélien' -> N'Aurélien') Ne pas mélanger les encodagesQuel logiciel t'affiche "Aur├⌐lien"? Et quel logiciel a intégré "Aur├⌐lien" dans ta base de données? C'est important, car ici tu sembles face à un problème d'encodage. Tu peux par exemple écrire "Aurélien" dans un fichier texte sous Windows et l'afficher sous DOS par la commande TYPE, tu obtiens "AurÚlien". Si tu enregistres "Aurélien" sous DOS (par exemple: ECHO Aurélien > test.txt), quand tu l'affiche sous Windows tu obtiens Aur‚lien. En bref, l'ordi doit être au courant de la façon dont tu codes les accents. Evite comme la peste des scripts sous DOS pour intégrer des données accentuées. Soit: Ton logiciel ne sait pas interpréter un accent, dans ce cas, une recherche sur 'Aurélien' devrait fonctionner, au pire avec un COLLATE virant accents et majuscules Tu as stocké des caractères réellement bizarres par mégardes, non reconnus comme des caractères accentués. Là c'est moins drôle, car il n'y a pas de fonctionnalité intégrée pour virer ce genre de caractères dans les recherches, sauf un COLLATE ASCII peut-être? Pour rappel, le COLLATE permet d'indiquer à SQL server comment comparer deux chaînes de caractère. Par défaut, il les compare sans prendre en compte les majuscules/minuscules (insensible à la casse), mais les accents comptent. Tu peux lui dire de considérer que é,è,ê,e soient les mêmes lettres par exemple, oului dire de faire une comparaison binaire. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.