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

Requêtes PostgreSQL Discussion :

Convertir un champ texte (character varying) en entier


Sujet :

Requêtes PostgreSQL

  1. #1
    Membre régulier
    Homme Profil pro
    Technicien SIG
    Inscrit en
    Avril 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Gabon

    Informations professionnelles :
    Activité : Technicien SIG
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2013
    Messages : 8
    Par défaut Convertir un champ texte (character varying) en entier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Bonjour, je cherche à faire une requête à partir de pgadmin qui permet de convertir un champ texte en entier. 
    SELECT matable.monchamp,to_number(matable.monchamp,'L9G999g999') as mnombre
       FROM matable;
    Ca renvoi l’erreur:
    ERROR: syntaxe en entrée invalide pour le type numeric : « »

    ERREUR: syntaxe en entrée invalide pour le type numeric : « »
    État SQL : 22P02
    exemple de données monchamp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        125
        351
        142bis
        335ter
    Merci d'avance pour vos réponses

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    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 132
    Par défaut
    Il est clair que 142bis ou 335ter ne sont pas des nombres...
    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
    Membre régulier
    Homme Profil pro
    Technicien SIG
    Inscrit en
    Avril 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Gabon

    Informations professionnelles :
    Activité : Technicien SIG
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2013
    Messages : 8
    Par défaut
    Bonjour, Je cherche l'équivalent de la fonction val de VBA.
    Val(35bis) = 35

  4. #4
    Membre chevronné
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2022
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Juin 2022
    Messages : 274
    Par défaut
    Bonjour,
    syntaxe en entrée invalide pour le type numeric : « »
    Ca me fais penser que tu donnes aucune infos sur ta bdd, ton champ "monchamp" est une chaine de caractères ?
    Parce que ca sent le type number côté bdd ...

    Example to_number , je viens de découvrir le site et franchement il est propre

    Cdt

  5. #5
    Membre régulier
    Homme Profil pro
    Technicien SIG
    Inscrit en
    Avril 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Gabon

    Informations professionnelles :
    Activité : Technicien SIG
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2013
    Messages : 8
    Par défaut
    Mon champ est de type "character varying", je précise qu'il existe une fonction en vba 'var' qui convertir un champ contenant du texte en numérique.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var(35ter) = 35
    var(35) = 35
    J'ai essayé TO_NUMBER,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT  "monchamp", TO_NUMBER("monchamp",'L9G999g999') FROM public.matable;
    j'ai l'erreur:
    ERROR: syntaxe en entrée invalide pour le type numeric : « »
    Pourtant quand je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
         SELECT TO_NUMBER('335ter', 'L9G999g999');  renvoie  335
         SELECT TO_NUMBER('335', 'L9G999g999'); renvoie  335

  6. #6
    Membre régulier
    Homme Profil pro
    Technicien SIG
    Inscrit en
    Avril 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Gabon

    Informations professionnelles :
    Activité : Technicien SIG
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2013
    Messages : 8
    Par défaut
    j'ai résolu mon problème, la formule c'est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT "MONCHAMP", 
    	CASE 
    		WHEN "MONCHAMP" <>'' THEN TO_NUMBER("MONCHAMP",'L9G999g999')
    	END
    FROM MATABLE;

  7. #7
    Membre Expert
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Septembre 2016
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2016
    Messages : 942
    Par défaut
    Citation Envoyé par aknleo Voir le message
    SELECT "MONCHAMP",
    CASE
    WHEN "MONCHAMP" <>'' THEN TO_NUMBER("MONCHAMP",'L9G999g999')
    END
    FROM MATABLE;
    Ah, la subtile différence entre une chaine vide et null, un poème !

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

Discussions similaires

  1. Comment convertir un champ texte en html ?
    Par Toufik83 dans le forum jQuery
    Réponses: 4
    Dernier message: 10/08/2017, 00h41
  2. [AC-2010] Convertir un champ texte en numérique le temps d'une requête
    Par yanisdev dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 15/03/2016, 20h59
  3. Convertir des champs "text" contenant du RichText
    Par jackfirst72 dans le forum SQL Procédural
    Réponses: 8
    Dernier message: 29/07/2009, 10h30
  4. Comment convertir un champ Text en double ?
    Par lolymeupy dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 17/10/2008, 10h49
  5. Convertir un champ text en numérique
    Par hannii dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 15/03/2007, 10h19

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