Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Correction base de données clients

5 réponses
Avatar
Hawk
Bonjour,

Une base de données mal développé, c'est à dire aucun masque de saisie
!
Resultat : dans les champs tel, tel2, mobil1 et mobil2
les téléphones sont saisis n'importe comment
soit XX.XX.XX.XX.XX soit XX/XX/XX/XX/XX soit XXXXXXXXXX soit XX XX XX
XX XX soit XX/XX/XX/XX/XX/XX-XX-XX-XX-XX
Parfois il y a plusieurs n°s dans le champs ou des séparateurs
différentsou des n°s de mobil dans les tel fixes.
J'aimerais me connecter sur la base via access puis faire une routine,
pour supprimer tous les ".", "/", "-", "espace" et mettre tous les n°s
en 06 dans les champs mobil et faire le tri dans les champs qui
contiennent plusieurs n°s
bien sur quand il y a plusieurs n°s, il peut y avoir un mobil et un
fixe mais pas toujours dans le bon ordre !!!

Si vous pouviez me donner une info sur comment proceder

Merci

5 réponses

Avatar
Philippe TROTIN [MS]
Bonjour,

Il faut utiliser la fonction REPLACE() et gérer les différents cas.

UPDATE MaTable SET MonChanmp = REPLACE(MonChamp, '/', '')


Cordialement
_______________________________

Philippe TROTIN
Microsoft Services France
_______________________________

"Hawk" a écrit dans le message de groupe de discussion :

Bonjour,

Une base de données mal développé, c'est à dire aucun masque de saisie
!
Resultat : dans les champs tel, tel2, mobil1 et mobil2
les téléphones sont saisis n'importe comment
soit XX.XX.XX.XX.XX soit XX/XX/XX/XX/XX soit XXXXXXXXXX soit XX XX XX
XX XX soit XX/XX/XX/XX/XX/XX-XX-XX-XX-XX
Parfois il y a plusieurs n°s dans le champs ou des séparateurs
différentsou des n°s de mobil dans les tel fixes.
J'aimerais me connecter sur la base via access puis faire une routine,
pour supprimer tous les ".", "/", "-", "espace" et mettre tous les n°s
en 06 dans les champs mobil et faire le tri dans les champs qui
contiennent plusieurs n°s
bien sur quand il y a plusieurs n°s, il peut y avoir un mobil et un
fixe mais pas toujours dans le bon ordre !!!

Si vous pouviez me donner une info sur comment proceder

Merci


Avatar
Fred BROUARD
CREATE FUNCTION F_RESTRICT (@IN VARCHAR (8000),
@CHARSOK VARCHAR(256))
RETURNS VARCHAR (8000)
AS
BEGIN
-- effets de bord
IF @IN IS NULL
RETURN NULL
IF @CHARSOK IS NULL
RETURN NULL
IF LEN(@IN) = 0
RETURN @IN
-- initialisation
DECLARE @I INTEGER
DECLARE @OUT VARCHAR(8000)
SET @OUT = ''
-- lecture caractère par caractère
SET @I =1
WHILE @I <= LEN(@IN)
BEGIN
IF PATINDEX('%' + SUBSTRING(@IN, @I, 1)+ '%', @CHARSOK) > 0
SET @OUT = @OUT + SUBSTRING(@IN, @I, 1)
SET @I = @I + 1
END
RETURN @OUT
END

Utilisez cette fonction dans un UPDATE avec dans CHAROK les seuls
caractères numériques de 0 à 9.

EXEMPLE :

SELECT dbo.F_RESTRICT ('33~1 14.54.45.21', '0123456789')

=> 33114544521


A +


Hawk a écrit :
Bonjour,

Une base de données mal développé, c'est à dire aucun masque de saisie
!
Resultat : dans les champs tel, tel2, mobil1 et mobil2
les téléphones sont saisis n'importe comment
soit XX.XX.XX.XX.XX soit XX/XX/XX/XX/XX soit XXXXXXXXXX soit XX XX XX
XX XX soit XX/XX/XX/XX/XX/XX-XX-XX-XX-XX
Parfois il y a plusieurs n°s dans le champs ou des séparateurs
différentsou des n°s de mobil dans les tel fixes.
J'aimerais me connecter sur la base via access puis faire une routine,
pour supprimer tous les ".", "/", "-", "espace" et mettre tous les n°s
en 06 dans les champs mobil et faire le tri dans les champs qui
contiennent plusieurs n°s
bien sur quand il y a plusieurs n°s, il peut y avoir un mobil et un
fixe mais pas toujours dans le bon ordre !!!

Si vous pouviez me donner une info sur comment proceder

Merci




--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
*********************** http://www.sqlspot.com *************************
Avatar
Pierre Goiffon
Hawk wrote:
Une base de données mal développé, c'est à dire aucun masque de saisie
!
Resultat : dans les champs tel, tel2, mobil1 et mobil2
les téléphones sont saisis n'importe comment
soit XX.XX.XX.XX.XX soit XX/XX/XX/XX/XX soit XXXXXXXXXX soit XX XX XX
XX XX soit XX/XX/XX/XX/XX/XX-XX-XX-XX-XX
Parfois il y a plusieurs n°s dans le champs ou des séparateurs
différentsou des n°s de mobil dans les tel fixes.
J'aimerais me connecter sur la base via access puis faire une routine,
pour supprimer tous les ".", "/", "-", "espace" et mettre tous les n°s
en 06 dans les champs mobil et faire le tri dans les champs qui
contiennent plusieurs n°s
bien sur quand il y a plusieurs n°s, il peut y avoir un mobil et un
fixe mais pas toujours dans le bon ordre !!!

Si vous pouviez me donner une info sur comment proceder



En T-SQL on peut faire pas mal de choses comme on vous l'a déjà répondu.
Mais ça ne suffit pas toujours... Si vous êtes un peu coincé, alors il
faut appeler des expressions rationnelles, soit en développant un petit
script maison (Perl, WSH en VBs ou JS, ...) soit en utilisant des
transformations DTS avec Active Script.
Avatar
Rudi Bruchez
Bonjour,


Pierre Goiffon a écrit:
Mais ça ne suffit pas toujours... Si vous êtes un peu coincé, alors il
faut appeler des expressions rationnelles, soit en développant un petit



Ça fait plaisir de voir encore des gens qui utilisent la traduction
française correcte : "expression rationnelle". Merci pour ça.

--
Rudi Bruchez
Consultant independant, MCDBA, MCITP, MCT
http://www.babaluga.com/
http://rudi.developpez.com/
Avatar
SQLpro
On 29 nov, 12:13, Rudi Bruchez <rudi#nospam#at#babaluga.com> wrote:
Bonjour,

Pierre Goiffon a écrit:

> Mais ça ne suffit pas toujours... Si vous êtes un peu coincé, alor s il
> faut appeler des expressions rationnelles, soit en développant un peti t

Ça fait plaisir de voir encore des gens qui utilisent la traduction
française correcte : "expression rationnelle". Merci pour ça.



Rudi, enfin... Un peu de sérieux ! Rapelle toi que tu es suisse... Pas
français ! ;-)


--
Rudi Bruchez
Consultant independant, MCDBA, MCITP, MCThttp://www.babaluga.com/http://ru di.developpez.com/