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

Langage SQL Discussion :

Condition sur le type de données


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    283
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 283
    Points : 62
    Points
    62
    Par défaut Condition sur le type de données
    Bonjour

    Comment sélectionner uniquement les données dont la valeur n'est pas du alphanumérique?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    case when numéro is char then 0
    else numéro
    le "is char" n'existe pas mais c'est ce que j'aimerai exprimer

    Qqn peut-il m'aider svp?

    Merci

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Quel est ton SGBD ?

    Avec MySQL, si tu as une colonne alphanumérique et que tu la divise par elle-même, le résultat sera 1 si c'est un nombre, NULL s'il y a des caractères.

    Donc tu peux essayer ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CASE 
      WHEN numero/numero IS NULL THEN 0
      ELSE numero
    END
    PS : Évite les accents dans les noms de colonnes ou de tables.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre expérimenté
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 146
    Points : 1 412
    Points
    1 412
    Par défaut
    Il est bien précisé dans les règles du forum d'indiquer le SGBD utilisé

    As-tu regardé le CAST?
    Merci d'ajouter un sur les tags qui vous ont aidé

  4. #4
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 153
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Avec MySQL, si tu as une colonne alphanumérique et que tu la divise par elle-même, le résultat sera 1 si c'est un nombre, NULL s'il y a des caractères.
    Que se passe-t-il si la valeur est numérique, mais 0 ?
    On ne jouit bien que de ce qu’on partage.

  5. #5
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par StringBuilder Voir le message
    Que se passe-t-il si la valeur est numérique, mais 0 ?
    Bonne remarque ! Probablement que ça donne NULL aussi. Il suffit d'adapter la condition de restriction en testant spécifiquement la valeur zéro mais comme de toute façon nawal59 veut afficher zéro si la valeur est alphanumérique, si la valeur est zéro ben ça affichera zéro quand même avec ma méthode ce qui est tout à fait juste dans ce cas précis !

    Ceci dit, je précise encore une fois que c'est l'astuce que j'avais trouvée avec des données dans MySQL. Je ne sais pas si les autres SGBD réagissent de la même façon !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  6. #6
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 801
    Points
    30 801
    Par défaut
    Avec Oracle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select  'a' / 'a' from dual;
     
    Erreur commençant à la ligne 1 de la commande :
    select  'a' / 'a' from dual
    Rapport d'erreur :
    Erreur SQL : ORA-01722: Nombre non valide
    01722. 00000 -  "invalid number"
    Résultat qui semble cohérent puisqu'on tente d'appliquer un opérateur arithmétique à une valeur non numérique.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  7. #7
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par al1_24 Voir le message
    Rapport d'erreur :
    Erreur SQL : ORA-01722: Nombre non valide
    01722. 00000 - "invalid number"[/code]

    Résultat qui semble cohérent puisqu'on tente d'appliquer un opérateur arithmétique à une valeur non numérique.
    Ça ne m'étonne pas ! Il est bien connu que MySQL est trop permissif !
    D'où mon rappel.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Discussions similaires

  1. Condition sur le type de données
    Par tumoo dans le forum Développement
    Réponses: 4
    Dernier message: 15/06/2011, 15h19
  2. Condition sur le type d'une valeur retournée
    Par Andalor dans le forum Développement
    Réponses: 2
    Dernier message: 09/03/2009, 12h55
  3. Replace sur un type de donnée text
    Par zut94 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 21/11/2008, 21h32
  4. Requête sur un type de donnée
    Par Coocky10 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 13/11/2007, 16h32
  5. [SQL 2000] Question sur les types de données
    Par Angath dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 03/11/2006, 14h05

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