Éliminer les accents dans une chaine de caractères

Aussi simple, y’a pas je vous le garantit… mais il fallait y penser… Savez vous que les collations peut transformer vos chaines de caractères ?

Éliminer les accents dans une chaine de caractères a toujours été l’objet de choses complexes, telles que l’écriture d’UDF en Transact SQL voir en SQL CLR (.net). Pourtant il existe une solution ultra simple et hyper efficace qui consiste à utiliser le principe des collations…

Voici un exemple :

SELECT 'éèàôûîêâäëüöÉÈÀÔÏ' collate SQL_Latin1_General_CP1251_CS_AS AS CHAINE_SANS_ACCENTS

donne comme résultat :

CHAINE_SANS_ACCENTS
-------------------
eeaouieaaeuoEEAOI

CQFD… !

Vous pouvez aussi utiliser la collation SQL_Latin1_General_CP1253_CS_AS.

En fait ces deux codes pages 1251 et 1253 sont utilisés pour, respectivement, le cyrillique et le grec. Du fait que les caractères cyrilliques ou grecs supplémentaire, n’incorporent pas les lettres accentuées du latin ces dernières sont transformées en lettres non accentuées !


Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
* Le site sur les SGBD relationnels et le SQL : https://sqlpro.developpez.com *
* le blog SQL, SQL Server, SGBDR... sur : https://blog.developpez.com/sqlpro/ *
* Expert Microsoft SQL Server, MVP (Most valuable Professional) depuis 14 ans *
* Entreprise SQL SPOT : modélisation, conseil, audit, optimisation, formation *
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *

Ce contenu a été publié dans Tips and tricks, avec comme mot(s)-clé(s) . Vous pouvez le mettre en favoris avec ce permalien.