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 averti
    Profil pro
    Inscrit en
    avril 2010
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2010
    Messages : 157
    Points : 345
    Points
    345

    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
    Inscrit en
    janvier 2007
    Messages
    8 537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : janvier 2007
    Messages : 8 537
    Points : 19 935
    Points
    19 935
    Billets dans le blog
    4

    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
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein
    J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius
    Si votre seul outil est un marteau, vous aurez tendance a ne voir que des clous

  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
    Inscrit en
    janvier 2007
    Messages
    8 537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : janvier 2007
    Messages : 8 537
    Points : 19 935
    Points
    19 935
    Billets dans le blog
    4

    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"
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein
    J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius
    Si votre seul outil est un marteau, vous aurez tendance a ne voir que des clous

  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
    Inscrit en
    janvier 2007
    Messages
    8 537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : janvier 2007
    Messages : 8 537
    Points : 19 935
    Points
    19 935
    Billets dans le blog
    4

    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'
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein
    J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius
    Si votre seul outil est un marteau, vous aurez tendance a ne voir que des clous

  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, 11h56
  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, 17h15
  3. Conversion d'une valeur numérique
    Par aldama dans le forum Débutant
    Réponses: 3
    Dernier message: 19/02/2008, 21h37
  4. Valeur numérique: conversion
    Par cathou9999 dans le forum Langage
    Réponses: 6
    Dernier message: 29/05/2007, 00h13

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