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

 Firebird Discussion :

Conversion en valeurs numériques


Sujet :

Firebird

  1. #1
    Futur Membre du Club
    Homme Profil pro
    biologiste analyste
    Inscrit en
    Janvier 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : biologiste analyste

    Informations forums :
    Inscription : Janvier 2016
    Messages : 11
    Points : 7
    Points
    7
    Par défaut Conversion en valeurs numériques
    Bonjour,

    comment peut-on convertir des valeurs (varchar(10)) de type 1.000.000 en 1000000 ???
    je souhaite faire une sélection en ne prenant que les valeurs situées au-delà de 1.000.000 mais il me sort également des valeurs 190.000 par exemple


    merci d'avance

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 245
    Points : 534
    Points
    534
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select cast(replace('1.000.000','.','') as integer)
    from rdb$database
    fonctionne.

    Utilisez la fonction REPLACE.
    Si l'utilisation du séparateur de milliers est systématique (et toujours le point, sans cela il faut aussi remplacer la virgule), un integer devrait suffire pour un varchar(10).

    André

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    [MODE=TROLL]
    Outre le fait que mettre une valeur numérique en Varchar, formatée de surcroît, n'est pas une bonne idée ?!
    et que de plus vous avez utilisé le point comme séparateur de millier !
    je vois pas ce qui pourrait clocher ou si peut être, le SQL de la sélection ![/MODE]

    Peut être qu'une UDF vous permettra de vous sortir de ce guêpier ou alors la conversion de la chaine après remplacement (suppression des points)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT CAST(REPLACE('1.000.000','.','') AS INTEGER) FROM RDB$DATABASE
    et donc pour une clause WHERE cela donnerait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE CAST(REPLACE('100.000.000','.','') AS INTEGER)>1000000
    Note : un CAST vers un NUMERIC(18,0) ou DECIMAL(18,0) sera peut être plus adéquat

    Si, il y a en plus des décimales indiquées par la virgule cela devient de plus en plus coton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT CAST(REPLACE(REPLACE('1.000.000,250','.',''),',','.') AS NUMERIC(18,3)) FROM RDB$DATABASE
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  4. #4
    Futur Membre du Club
    Homme Profil pro
    biologiste analyste
    Inscrit en
    Janvier 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : biologiste analyste

    Informations forums :
    Inscription : Janvier 2016
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Merci

    et si on veut changer toute la colonne qui dans se format?? on remplace le '1.000.000' de vos codes par le nom de la colonne??

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par larbuisson Voir le message
    et si on veut changer toute la colonne qui dans ce format?? on remplace le '1.000.000' de vos codes par le nom de la colonne??
    Bien sûr. Comme vous n'avez fourni aucun nom de table ni de structure de cette dernière il était plus facile de montrer ce que l'on peut faire avec un exemple constant et utiliser RDB$DATABASE comme "table"
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  6. #6
    Futur Membre du Club
    Homme Profil pro
    biologiste analyste
    Inscrit en
    Janvier 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : biologiste analyste

    Informations forums :
    Inscription : Janvier 2016
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Pardon

    Donc en résumé

    J'ai une table essais qui contient 186 champs.

    Je voudrais dans un champs COMPTAGE remplacer toutes les valeurs qui ont été encodée sous forme 12.123.523 et le remplacer par 12123523

  7. #7
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Je voudrais dans un champs COMPTAGE remplacer toutes les valeurs qui ont été encodée sous forme 12.123.523 et le remplacer par 12123523
    pas besoin de conversion en numérique alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    UPDATE ESSAIS SET COMPTAGE=REPLACE(COMPTAGE,'.','') WHERE COMPTAGE='12.123.523'
    ou même
    UPDATE ESSAIS SET COMPTAGE='12123523' WHERE COMPTAGE='12.123.523'
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  8. #8
    Futur Membre du Club
    Homme Profil pro
    biologiste analyste
    Inscrit en
    Janvier 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : biologiste analyste

    Informations forums :
    Inscription : Janvier 2016
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    parfait merci beaucoup

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

Discussions similaires

  1. conversion en valeur numérique
    Par baraa.rosa dans le forum LabVIEW
    Réponses: 3
    Dernier message: 15/06/2015, 10h56
  2. Conversion chaîne de caractère/valeur numérique
    Par julieng31 dans le forum Débuter
    Réponses: 5
    Dernier message: 03/06/2009, 16h15
  3. Conversion d'une valeur numérique
    Par aldama dans le forum Débuter
    Réponses: 3
    Dernier message: 19/02/2008, 20h37
  4. Valeur numérique: conversion
    Par cathou9999 dans le forum Langage
    Réponses: 6
    Dernier message: 28/05/2007, 23h13

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