IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Débutez Discussion :

Suppression de plusieurs observations au format caractère


Sujet :

Débutez

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2014
    Messages : 12
    Points : 11
    Points
    11
    Par défaut Suppression de plusieurs observations au format caractère
    Bonjour,
    j'aurais besoin d'aide concernant un problème que je rencontre.
    Je m'explique: j'ai un travail à faire, une des étapes serait de saisir un code qui permette de supprimer des adresses mails incorrectes. J'ai utilisé le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    proc sql;
       create table TR.tablef2 as
           select *
           from TR.tablef
           where cc_email not like '%.co' and cc_email not like '%.c' and cc_email not like '%.f' and cc_email not like '%.' and cc_email not like '%@' and cc_email not like 'xx%' and cc_email not like '0788%' and cc_email not like '0@%' and cc_email not like '09%' and cc_email not like "111%" and cc_email not like '2812%' and cc_email not like '04%' and cc_email not like '05%' and cc_email not like '064%' and cc_email not like '065%' and cc_email not like '069%'  and cc_email not like 'xx%' and cc_email not like '060%' and cc_email not like '062%' and cc_email not like '063%' and cc_email not like '061%' and cc_email not like '032%' and cc_email not like '038%' and cc_email not like '068%' and cc_email not like '067%' and cc_email not like '066%' and cc_email not like '015%' and cc_email not like '1539%' and cc_email not like '1505%' and cc_email not like '1389%'and cc_email not like 'FGH%' and cc_email not like 'non%' and cc_email not like "123@%" and  cc_email not like "aeae%" ;
    quit;
    mais ce code est trop long. Ce qu'il me faudrait, c'est supprimer toutes les adresses incorrectes à l'aide d'un code plus simple si possible.
    Toute aide serait la bienvenue

    Merci

  2. #2
    Modérateur

    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2011
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2011
    Messages : 1 625
    Points : 3 403
    Points
    3 403
    Par défaut
    hello,
    tu peux passer par les expressions régulières , exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    data cible;
    set source;
     if PRXMATCH("/^[\w-]+@[\w-]+\.[a-z]{2,4}$/i", cc_email )=0 then delete;
    run;

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2014
    Messages : 12
    Points : 11
    Points
    11
    Par défaut
    Salut,
    Ok, tu pourrais m'expliquer cette partie du code stp car je ne la comprend pas.
    PRXMATCH("/^[\w-]+@[\w-]+\.[a-z]{2,4}$/i", cc_email )=0

    Merci

  4. #4
    Modérateur

    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2011
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2011
    Messages : 1 625
    Points : 3 403
    Points
    3 403
    Par défaut
    Je ne vais pas te donner un cours sur les expressions régulières, mais voici une petite explication :

    une adresse mail doit une_chaine_de_caractères ( [\w-]+) suivi de @ suivi d'une_chaine_de_caractères ( sous demaine) ([\w-]) suivi d'un point(.) suivi d'une_chaine_de_caractères ( domaine) de 2 à 4 caractère ([a-z]{2,4}).

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2014
    Messages : 12
    Points : 11
    Points
    11
    Par défaut
    C'est tout de même un cours que tu viens de me donner lol.
    Merci pour ton aide

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2014
    Messages : 12
    Points : 11
    Points
    11
    Par défaut Je pense avoir trouvé
    Pour ceux que ça intéressent, en utilisant ce code, j'ai pu supprimer les adresses mails incorrectes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    data b;
    set a;
    if PRXMATCH("/^([a-zA-Z0-9_\.\-])+@(([a-zA-Z0-9\-])+\.)+(com|org|net|gov|biz|info|name|aero|fr|be|co.uk|it|eu|es|de|info)+$/i"),strip(ta_variable)) then output;
    run;
    La table b ne contiendra que les bonnes adresses.
    Jsper que ça pourra aider

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Vietnam

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 19
    Points : 23
    Points
    23
    Par défaut
    Citation Envoyé par hamdy1999 Voir le message
    Pour ceux que ça intéressent, en utilisant ce code, j'ai pu supprimer les adresses mails incorrectes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    data b;
    set a;
    if PRXMATCH("/^([a-zA-Z0-9_\.\-])+@(([a-zA-Z0-9\-])+\.)+(com|org|net|gov|biz|info|name|aero|fr|be|co.uk|it|eu|es|de|info)+$/i"),strip(ta_variable)) then output;
    run;
    La table b ne contiendra que les bonnes adresses.
    Jsper que ça pourra aider
    Bonjour j'ai essayé ton code mais cela donne une message d'erreur
    Pas assez d'arguments à l'appel de la fonction PRXMATCH.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Vietnam

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 19
    Points : 23
    Points
    23
    Par défaut
    Citation Envoyé par s_a_m Voir le message
    hello,
    tu peux passer par les expressions régulières , exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    data cible;
    set source;
     if PRXMATCH("/^[\w-]+@[\w-]+\.[a-z]{2,4}$/i", cc_email )=0 then delete;
    run;
    j'ai essayé ton code mais cela a supprimé toutes mes adresse dans ma table (source)
    voici une partie de ma table

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    DATA test1;
    SET test;
     IF PRXMATCH("/^[\w-]+@[\w-]+\.[a-z]{2,4}$/i", EMAIL )=0 then DELETE;
    run;

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2014
    Messages : 12
    Points : 11
    Points
    11
    Par défaut =0 ?
    Salut,

    Bizarre! Chez moi, ça marche nickel.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Data b;
    	Set a;
    	if PRXMATCH("/\*{1,30}|^\-{1,30}@|^\d{1,30}@|\+{1,30}|\~{1,30}|[\/]{1,30}|\w+@+\d{1,30}\.\w$|^\d{1,30}[- .]\d{1,30}[1,30]@|^\-{1,30}@|@\d{1,30}\.\w{1,30}$|-{1,30}@\w{1,30}$|\d{4}\-\d{1,30}@|@\w{1,30}$|@\w{1,30}\.\w{1}$|@\w{1,30}\.*$|^\w{1,30}\_\d{1,30}$/i",strip(cc_email)) then delete;
    	run;
    Tu peux essayer de placer un
    output
    à place du
    delete
    pour voir les adresses qui seront supprimées.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Trigger de suppression de plusieurs records
    Par Redondo dans le forum Développement
    Réponses: 2
    Dernier message: 02/08/2006, 11h41
  2. Suppression de plusieurs enregistrements à la fois
    Par vinzom dans le forum Access
    Réponses: 3
    Dernier message: 04/07/2006, 01h09
  3. Requête suppression de plusieurs lignes
    Par rane dans le forum Requêtes
    Réponses: 20
    Dernier message: 29/06/2006, 21h22
  4. [Hibernate2]suppression de plusieurs enreg de base de donnée
    Par michaelbob dans le forum Hibernate
    Réponses: 2
    Dernier message: 15/05/2006, 17h48
  5. suppression sur plusieurs tables
    Par Jean-Matt dans le forum Langage SQL
    Réponses: 2
    Dernier message: 16/06/2005, 12h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo