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 :

Ajout "case of pas" en sql


Sujet :

Débutez

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2002
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mars 2002
    Messages : 244
    Par défaut Ajout "case of pas" en sql
    Bonjour,

    Pendant l'exécution de mon programme j'ai mis des messages prédéfinis (par un suffixe) dans le log.
    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    %put TITRE_UNICITY: TEST D''UNICITE;
    %put MESSAGE: mon message;
    %put MESSAGE: mon deuxième message;
    %put TITRE_INTEGRITY: TEST D''INTEGRITE;
    Je parcours ensuite le log afin de filtrer uniquement certains types de messages.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    data _null_;
    	infile logfile truncover;
    	input linetxt $90.;
    	if &err=0 then
    	do;
    	/*case of = TITLE: UNICITY;*/
    	if index(linetxt,"MESSAGE:")>0 and 
    	  index(linetxt,"put MESSAGE:")=0 then 
    		do;
    		file result;
    		res = substrn(linetxt,10,lengthc(linetxt));
    		put res;
    		end;
    	end;
    run;
    J'aurais voulu ici effectuer un "case of" afin d'éviter des test inutiles.
    En effet, si je sais que je suis sur un titre, je ne serai jamais sur un message. --> donc plus la peine de tester.
    En plus, j'ai plusieurs titre et un ligne lue ne peut contenir qu'un seul titre à la fois.
    Y a-t-i moyen d'éviter toute une imbrication de elseif?

    En cherchant sur le net, je vois qu'un case when mais qui s'utilise avec du sql...

  2. #2
    Membre Expert
    Homme Profil pro
    Biostatisticien
    Inscrit en
    Juin 2009
    Messages
    1 206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Biostatisticien
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 206
    Par défaut
    attaque par le sql alors

    tu peux également le faire par une étape data en utilisant le select when (qui se termine par un otherwise).

    Attention! le select when, ce n'est pas la même chose que du if then imbriqué...

  3. #3
    Invité
    Invité(e)
    Par défaut
    bonjour, je te propose ce lien:

    http://www2.sas.com/proceedings/sugi27/p096-27.pdf

    j'espère que sa pourra t'aider

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

Discussions similaires

  1. [Oracle8i][PL/SQL] CASE ou pas CASE
    Par Titouf dans le forum Oracle
    Réponses: 9
    Dernier message: 09/08/2006, 22h41

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