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

SAS Base Discussion :

PROC SQL Formatage


Sujet :

SAS Base

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2020
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2020
    Messages : 21
    Points : 14
    Points
    14
    Par défaut PROC SQL Formatage
    Bonjour , j'ai un petit soucis avec le formatage des données a partir d'une PROC SQL sur SAS
    je veux faire une extraction de plusieurs colonnes mais en précisant la position de chaque colonne et la longueur par exemple :
    numero_client (position 0 , longueur 10, remplir le reste avec des zéro à droite)
    Nom_client ( position 11 , longueur 20 , remplir le reste avec des espaces à droite) ......

    Merci d'avance

  2. #2
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2019
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2019
    Messages : 14
    Points : 22
    Points
    22
    Par défaut
    Bonjour,

    En partant du principe que tu fait un proc sql sur un dataset et pas sur une db. Voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    proc sql;
    create table brol as
    select aa.*,
              aa.col  format = $18.
    from work.aa
    quit;
    Cordialement,

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2020
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2020
    Messages : 21
    Points : 14
    Points
    14
    Par défaut
    je te remercie pour ta réponse et je ne sais pas est ce que c'est bien marché ou non car j'utilise SAS studio et je pense qu'il vire les blancs car je ne vois pas la différence

  4. #4
    Membre du Club
    Femme Profil pro
    Formatrice en SAS (en ligne)
    Inscrit en
    Mai 2019
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Formatrice en SAS (en ligne)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2019
    Messages : 28
    Points : 46
    Points
    46
    Par défaut
    Bonjour,

    Je ne suis pas entièrement sûre d'avoir compris ta question car pour moi quand on fait une extraction en précisant la position et la longueur, je pense plutôt à "column input" dans une étape data où d'ailleurs la position est au minimum de 1 et non de 0.

    Le nombre de blancs après une valeur caractère (trailing blanks) est fonction de la longueur de la variable et non d'un format.
    Peut-être as-tu des blancs d'en-tête qui te donnent un rendu non attendu. Dans ce cas, utilise la fonction strip.

    A ma connaissance, il n'y a pas de format qui ajoute des zéros de fin. Mais tu peux le créer.
    Voici un exemple avec un picture format appliqué sur une variable numérique.

    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
    17
     
    proc format;
       picture demo  0 - 9  ='9999' (mult=1000)
                    10 - 99 ='9999' (mult=100)
                    100-999 ='9999' (mult=10);
    run;
     
    data numvar;
        numero_client=1;    output;
        numero_client=12;   output;
        numero_client=123;  output;
        numero_client=1234; output;
    run; 
     
    proc print data=numvar;
    format numero_client demo.;
    run;
    Est-ce que cela résouds ton problème ?

    Si non, aurais-tu un exemple avec des données pour mieux comprendre où se situe le problème ?

Discussions similaires

  1. Erreur %goto et proc sql dans une macro
    Par raf64flo dans le forum Macro
    Réponses: 15
    Dernier message: 17/04/2008, 22h40
  2. supprimer proc sql
    Par cyrano_de_bergerac dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 30/01/2008, 14h44
  3. executer les proc sql en java
    Par bicho dans le forum JDBC
    Réponses: 1
    Dernier message: 16/05/2007, 16h25
  4. [ProC][SQL] Utiliser une variable comme nom de curseur
    Par adiGuba dans le forum Interfaces de programmation
    Réponses: 1
    Dernier message: 06/12/2006, 11h55
  5. Code retour en sortie de proc sql...
    Par milodanlso dans le forum Oracle
    Réponses: 2
    Dernier message: 26/03/2006, 12h27

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