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 :

like '22%' pour des chiffre?


Sujet :

SAS Base

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 17
    Points : 13
    Points
    13
    Par défaut like '22%' pour des chiffre?
    bonjour
    quand je tape ce code j'ai un message d'erreur! comment réecrire cette requète de façon à ce qu'elle soit rapide car la table a.liste est tres très longue
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    proc sql;
    	create table test as select * from a.liste
    			where numerosoc like '2002%';
    			quit;
    j'obtiens:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ERREUR: L'opérateur LIKE requiert des opérandes alphanumériques.
    merci

  2. #2
    Expert confirmé
    Avatar de olivier.decourt
    Homme Profil pro
    Formateur R/SAS/statistiques
    Inscrit en
    Avril 2008
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Formateur R/SAS/statistiques
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 064
    Points : 4 478
    Points
    4 478
    Par défaut
    Bonjour.
    Tu as deux solutions :
    1) convertir NUMEROSOC en caractère le temps de la condition, avec une fonction PUT ; si par exemple ton n° fait 9 chiffres, il faudrait écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE PUT(numerosoc, 9.) LIKE '2002%'
    . Pour info, en SQL SAS, on peut aussi écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE PUT(numerosoc, 9.) EQT "2002"
    (EQT veut dire "commence par").
    2) jour avec une fonction mathématique comme partie entière (INT) après avoir divisé numerosoc par la puissance de 10 qui va bien. Par exemple, sur 9 chiffres toujours, si numeroSoc = 200212345, alors INT(numeroSoc/10000)=2002. Donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE INT(numeroSoc/10000)=2002
    c'est bon aussi.
    Olivier
    Bon courage.
    Olivier

Discussions similaires

  1. [9.3] Caractère joker % / Mais pour des chiffres ?
    Par camyo dans le forum Requêtes
    Réponses: 3
    Dernier message: 24/10/2014, 15h36
  2. [RegEx] regex pour des chiffres limités
    Par kOrt3x dans le forum Langage
    Réponses: 2
    Dernier message: 01/04/2010, 16h53
  3. [WD12] Imposer des , ou . pour des chiffres
    Par chapeau_melon dans le forum WinDev
    Réponses: 9
    Dernier message: 20/06/2008, 14h11
  4. Problème de format pour des chiffres à virgule
    Par bob75000 dans le forum Access
    Réponses: 5
    Dernier message: 21/07/2006, 10h42
  5. Commande pour afficher des chiffres apres la virgule
    Par manar dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 23/09/2004, 18h28

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