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

Sybase Discussion :

Comment tester si une chaine est numérique


Sujet :

Sybase

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Comment tester si une chaine est numérique
    Bonjour,
    je souhaite créer une procédure stockée pour tester si une chaine de caractère est numérique:
    exemple: la chaine "12572ab45" est numéric ou non numéric?

    Je souhaite dans ma procédure passer par un boucle (while) qui testera tous les chiffres de 0 à 9.
    Merci pour votre aide.

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    Si c'est pour ASE, alors il y a plusieurs possibilités sans faire de boucle:

    Pour ASE 15.0.1 ou plus récent, on peut utiliser isnumeric(), qui retourne 1 si la chaine de n'a que des nombre ou point decimal.

    Pour ASE avant 15.0.1 on peut utiliser un patindex:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select case when patindex('%[^0-9]%', @chaine) > 0 then 'alpha' else 'num' end
    Michael
    Michael Peppler
    Membre de TeamSybase - www.teamsybase.com

    "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par mpeppler Voir le message
    Si c'est pour ASE, alors il y a plusieurs possibilités sans faire de boucle:

    Pour ASE 15.0.1 ou plus récent, on peut utiliser isnumeric(), qui retourne 1 si la chaine de n'a que des nombre ou point decimal.

    Pour ASE avant 15.0.1 on peut utiliser un patindex:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select case when patindex('%[^0-9]%', @chaine) > 0 then 'alpha' else 'num' end
    Michael
    Merci pour cette réponse. c'est OK

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

Discussions similaires

  1. [SQL] Tester si une chaine est au format date standard
    Par shaun_the_sheep dans le forum Oracle
    Réponses: 5
    Dernier message: 18/07/2006, 14h00
  2. Tester si une chaine est un nombre
    Par Grimdol dans le forum C
    Réponses: 15
    Dernier message: 24/06/2006, 11h44
  3. Comment tester qu'une base est bien présente?
    Par xilay dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 20/10/2005, 16h26
  4. comment tester si une variable est de type indifined
    Par amelhog dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 10/08/2005, 09h32
  5. [langage] Comment tester si une chaine est vide
    Par |Bio dans le forum Langage
    Réponses: 4
    Dernier message: 04/05/2005, 15h05

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