|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : juillet 2003 Messages : 3 ![]() |
Techno : SQL Server 2005
Bonjour, Je cherche à retrouver dans une table tous les noms / prénoms qui seraient faux, contenant donc des mauvais caractères. J'avais commencé par select meschamps from matable where prenom like '%[^a-z]%' Donc la ca me renvoyait tous les utilisateurs qui avaient autre chose que des caractères alpha dans leur prenom, c'était presque ca, mais le soucis c'est que les espaces, les - et les ' sont authorisés Donc j'ai ajouté : prenom not like '%[a-z][ -''][a-z]%' C'est encore mieux ca m'affine mes retours mais voila j'ai des cas comme : BLA-BL123A par exemple Qui sont exclus maintenant à cause de ma deuxième condition Et ben la je coince Si vous avez des idées, merci d'avance |
|
|
00
|
|
|
#2 | ||
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 953 ![]() |
Code :
A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
||
|
00
|
|
|
#3 | |||
|
Invité de passage
![]() Inscription : juillet 2003 Messages : 3 ![]() |
Citation:
|
|||
|
|
00
|
|
|
#4 | ||
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Bonjour
que donne ceci : Code SQL :
|
||
|
|
00
|
|
|
#5 | |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 953 ![]() |
Citation:
A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
|
00
|
|
|
#6 | |||
|
Invité de passage
![]() Inscription : juillet 2003 Messages : 3 ![]() |
Citation:
Faut que j'analyse bien ca, car j'ai 56 500 lignes retournées et un premier test différent me renvoyait 77 500 (mais celui la gérait pas par exemple le š) SQL Pro => French_CI_AS |
|||
|
|
00
|
|
|
#7 | ||||
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Effectivement, comme noté par SQLPro, la collation a toute son importance...
Même avec le LIKE... Par exemple, avec une telle collation l'intervalle [a-z] comprend toutes les lettres en majuscule ou minuscule, mais également les lettres accentuées (car "é" est classé entre "e" et "f"...) De même "™" est compris dans [a-z] car classé entre "t" et "u" ! enfin, "ž" n'est pas compris dans l'intervalle [a-z] (car classé après le "z") Il faudra donc certainement affiner le patern du LIKE en fonction de tes besoins Le script ci-dessous t'indique le classement, et t'indique pour chaque caractére s'il sera accepté ou non dans le pattern du LIKE, ça te permettra de l'affiner au cas où : Code SQL :
avec ceci, tu peux voir par exemple, que pour ne pas accepter le caractère "™", mais accepter "ž", il faudrait plutôt faire ceci : Code SQL :
|
||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com