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 :

Comment trouver les valeurs qui ne sont pas arrondies (qui ont plus de 2 décimales) ?


Sujet :

Langage SQL

  1. #1
    Membre éclairé
    Avatar de clavier12AZQSWX
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2009
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 391
    Points : 863
    Points
    863
    Par défaut Comment trouver les valeurs qui ne sont pas arrondies (qui ont plus de 2 décimales) ?
    bonjour,

    ça me concerne principalement dans postgresql mais la réponse est peut-être générale donc je pose ici le problème.
    j'ai dans ma table des valeurs du genre 0.66667 ou 0.65

    je veux lister mes tuples dont cette colonne n'est pas arrondie à deux chiffres derrieres la virgules. sachant que mon champ est de type DOUBLE PRECISION.

    comment faire ? on peut pister le nombre de décimales en sql ?
    au passage le nombre de décimales n'est pas fixe, donc on peut avoir des 0.666 ou 0.5478212. moi je veux trouver ceux qui ont plus de 2 décimales.

    une idée ?

  2. #2
    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
    Quelque chose comme : MOD(colonne * 100, 1) <> 0 ?
    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.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    en utilisant les fonctions mathématiques de postgres peut etre : http://www.postgresql.org/docs/7.4/s...ions-math.html

    Dans la lignée du message précédent.
    Dernière modification par Invité ; 28/05/2014 à 14h44.

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Pour le problème général, j'utiliserais la fonction ROUND, avec un filtre de ce genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE col <> round(col, 2)
    Pour le cas particulier du double precision, il faut faire une conversion, mais c'est peut-être plus coûteux que les solutions du dessus.
    De plus, je ne suis pas vraiment fan de la conversion double -> decimal, il y aura sûrement déjà un arrondi.

    De manière général, il faut éviter les types à virgules flottantes quand on le peut.

Discussions similaires

  1. [XL-2007] Comment trouver les valeurs correspondantes
    Par cosinus85 dans le forum Excel
    Réponses: 2
    Dernier message: 03/10/2011, 10h11
  2. Réponses: 2
    Dernier message: 27/07/2011, 12h16
  3. Réponses: 6
    Dernier message: 11/11/2010, 23h58
  4. Réponses: 10
    Dernier message: 15/12/2006, 07h34
  5. Comment trouver les valeurs manquante d'une série ?
    Par NicoNGRI dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/10/2006, 09h38

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