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 :

alier isnumeric et l'operateur > dans un where


Sujet :

Langage SQL

  1. #1
    Membre régulier Avatar de igorzup
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    307
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 307
    Points : 107
    Points
    107
    Par défaut alier isnumeric et l'operateur > dans un where
    Bonjour,

    je dois faire une requete sortant les lignes ou une des colonnes doit etre superieure a une variable.

    malheureusement je viens de me rendre compte que la zone peux contenir du texte...

    je veux exculre de toute facon les lignes qui contiennnent du texte dans cette zone

    j'aimerais donc ajouter dans mes condition where une double condition:
    - isnumeric
    - > variable

    toute mes tentatives avec isnumeric semblent ne pas fonctionner (erreur de syntaxe dans tout les sens)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... AND (Iif(ISNUMERIC(F_ECRITUREC.EC_Piece) = 1; F_ECRITUREC.EC_Piece > 0; 0)) AND ...
    par avance, merci de m'aider

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 388
    Points
    18 388
    Par défaut
    Merci de préciser votre environnement.

  3. #3
    Membre régulier Avatar de igorzup
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    307
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 307
    Points : 107
    Points
    107
    Par défaut
    sry,

    MS SQL2000 et windowsXP

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 388
    Points
    18 388
    Par défaut
    Il suffit de le séparer en deux conditions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ...
    AND ISNUMERIC(F_ECRITUREC.EC_Piece) = 1
    AND cast(F_ECRITUREC.EC_Piece as numeric(18,2)) > 0
    AND ...
    J'ai mis (18,2) en format du numérique, je vous laisse l'adapter.

  5. #5
    Membre régulier Avatar de igorzup
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    307
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 307
    Points : 107
    Points
    107
    Par défaut
    merci beaucoup waldar,

    c'etait effectivement (tres tres) simple!
    j'ai pas pigé le (18,2) par contre...

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 388
    Points
    18 388
    Par défaut
    C'est la précision du numérique.
    (18,2) signifie dix-huit chiffres significatifs avant la virgule, et deux après (à vérifier que cette précision est valide).

    Si dans votre champ vous savez que vous avez des entiers inférieurs à 100.000, vous pouvez utiliser le format numeric(5, 0).

  7. #7
    Membre régulier Avatar de igorzup
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    307
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 307
    Points : 107
    Points
    107
    Par défaut
    bah ecoute, sans cette transformation en numeric 18, la comparaison bloquais...

    bravo d'avoir anticipé un probleme que j'avais pas encore eu...


  8. #8
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 388
    Points
    18 388
    Par défaut
    Le principe est simple et commun à tous les langages de développement, il faut respecter les types et éviter les conversions implicites.

    Si dans la rue vous demandez à un passant l'heure et que celui-ci vous répond "mille quatre cent trente-sept", vous pourrez certes comprendre mais il vous faudra faire la conversion.
    Tient j'aime bien mon exemple, il faudra que je m'en souvienne

  9. #9
    Membre régulier Avatar de igorzup
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    307
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 307
    Points : 107
    Points
    107
    Par défaut
    okay mais le signe > que j'utilisais, du coup, fesait une comparaison entre quoi et quoi?

    pcq le resultat etait pertinent avant l'apparition d'une valeur varchar dans ma colonne de chiffres (j'avais pas regardé le format de la colonne... tellement j'etait sur que c'etait des entiers...)

    mais du coup je comparais quoi?

    123456 > 'un varchar(50)' ca donne quoi?

  10. #10
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 388
    Points
    18 388
    Par défaut
    Il y aura une conversion implicite du varchar en nombre ou du nombre en varchar, et ça pourrait fournir le bon résultat, mais ne le prenez pas pour acquis.

  11. #11
    Membre régulier Avatar de igorzup
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    307
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 307
    Points : 107
    Points
    107
    Par défaut
    off course...

    bien illustré pour le coup.

    Merci Waldar

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

Discussions similaires

  1. [2008R2] L'operateur IN dans MDX
    Par Rymaya dans le forum SSAS
    Réponses: 4
    Dernier message: 14/08/2012, 14h54
  2. Operateur ternaire dans JSP
    Par zulot dans le forum Servlets/JSP
    Réponses: 0
    Dernier message: 09/08/2011, 16h47
  3. Operateur logique dans un If
    Par HWICE dans le forum Langage
    Réponses: 9
    Dernier message: 31/01/2008, 16h51
  4. Utilisation d'operateur booleen dans une requete
    Par olivier] dans le forum Langage SQL
    Réponses: 3
    Dernier message: 02/01/2006, 16h16
  5. 2 champs dans un where , possible en sql server ?
    Par voyageur dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 19/10/2004, 05h01

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