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 :

Affichage de "0" inutiles après la virgule


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2012
    Messages : 324
    Points : 13
    Points
    13
    Par défaut Affichage de "0" inutiles après la virgule
    Bonjour,
    j'ai des colonne dans ma base de données dont le type est décimal(8,3).
    ces colonnes ne prennent pas toujours des valeurs décimales, il est très fréquent que ça soit des entiers. Je ne suis pas très satisfaites avec les "0" qui s'affichent après la virgule quand c'est le cas.
    comment je pourrais forcer la colonne à ne prendre la forme décimale que lorsque c'est nécéssaire?

    une autre question: j'utilise beaucoup les requêtes select from where et insert into where.
    mais elles sont très lentes car mes tables sont de tailles énormes.
    Quelqu'un m'a conseillé d'utiliser inssert bulk mais je suis obligé de traiter ms données lignes par ligne car il y'a des update et des traitements à faire sur chaque ligne donc bulk ne me convient pas.

    Existe t-il une solutions pour ces deux problèmes?
    merci d'avance?

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Le problème de la virgule est un problème d'affichage, et donc a gérer dans la partie qui gère l'affichage, mais pas dans la base de données...
    Si toutefois vous y tenez, il faudra transtyper la colonne du résultat en varchar, et effectuer un formatage conditionnel... c'est très lourd pour pas grand chose !

    pour le deuxième point, c'est très certainement le fait de traiter ligne à ligne qui engendre les lenteurs... que faites vous exactement comme traitement ?
    vous utilisez les curseurs ? vous faites des requêtes dans des boucles ?

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2012
    Messages : 324
    Points : 13
    Points
    13
    Par défaut
    Bonjour,
    oui j'utilise ces requêtes dans des boucles. le principe est simple.
    j'ai un fichier qui contient une table de routage Internet que je vais charger dans une table SQL.
    ce fichier est crée periodiquement par un ensembles de requêtes shell. Donc a chaque fois je fais cet algorithme la:

    je lis une ligne de mon fichier
    je la cherche dans ma table
    si elle existe, je la compare avec la ligne du fichier pour la mettre à jour (la mise a jour se fait colonne par colonne)
    si elle n'existe pas, je l'ajoute.
    et ainsi de suite pour toutes les lignes de mon fichier.

    ce traitement se fait sur un fichier de 1000 lignes.

    Croyez vous que ça sera mieux d'utiliser Oracle au lieu de Mysql?

  4. #4
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 950
    Points : 5 849
    Points
    5 849
    Par défaut
    Oracle offre bien plus de fonctionnalités SQL que mysql (et est evidemment plus robuste) mais un SGBDR n'est pas fait pour fonctionner en mode ligne à ligne, c'est toujours la moins performante des méthodes, il faut résonner en ensemble...

    Pour le process, il faut charger le fichier en base dans une table puis normalement utiliser MERGE, avec mysql regarde du côté de ON DUPLICATE KEY qui est sa version très peu flexible de MERGE.

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2012
    Messages : 324
    Points : 13
    Points
    13
    Par défaut
    je vais me renseigner sur le sujet et je te tiendrai informé.
    merci

Discussions similaires

  1. [CR XI] Suppression des zéros inutiles après une virgule
    Par Jsh dans le forum SAP Crystal Reports
    Réponses: 9
    Dernier message: 26/02/2008, 14h13

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