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 :

Requete Update ou Insert : Supp de caractères non numériques


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Inscrit en
    Juillet 2003
    Messages
    207
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 207
    Points : 85
    Points
    85
    Par défaut Requete Update ou Insert : Supp de caractères non numériques
    Bonjour,

    Je cherche à faire une requête permettant de mettre à jour un champ ou plutot en créer un nouveau calculé à partir de celui-ci.

    C'est un champ VarChar qui contient principalement du numerique (avec virgule) mais parfois il y a un signe '>' ou '<' ou un espace.

    Dans mon nouveau champ calculé de type numerique je souhaiterais faire disparaitre ces caractères non numérique.

    Comment procéder ? Merci d'avance

  2. #2
    Membre éclairé Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    Par défaut
    si t'es sous oracle tu peux t'inspirer de ça :

    SELECT CAST(REPLACE(REPLACE('5<>2', '<>', ''),'>','') AS NUMBER)
    FROM dual;
    Ignorer c'est aussi croire que l'on sait.
    Merci d'essayer d'écrire correctement.
    Pas de questions techniques par MP SVP.

  3. #3
    Membre régulier
    Inscrit en
    Juillet 2003
    Messages
    207
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 207
    Points : 85
    Points
    85
    Par défaut
    Merci
    Je suis sous SQLServer

    Tu pourrais me détailler cette fontion ?
    où est le nom du champ ? et pourquoi '5<>2' ?

  4. #4
    Membre éclairé Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    Par défaut
    c'était un exemple là tu obtiens 52 sous forme numérique

    il va de soit que tu remplaces ça par ton VARCHAR
    mais je pense que c'est spécifique à Oracle(pas sûr)
    Ignorer c'est aussi croire que l'on sait.
    Merci d'essayer d'écrire correctement.
    Pas de questions techniques par MP SVP.

  5. #5
    Membre régulier
    Inscrit en
    Juillet 2003
    Messages
    207
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 207
    Points : 85
    Points
    85
    Par défaut
    Apparement ça marche pas sous SqlServer

    SELECT CAST(REPLACE(REPLACE(valeur, '<>', ''),'>','') AS numeric)
    FROM dbo.ResultatTravail;


    j'ai l'erreur :
    Serveur : Msg 8114, Niveau 16, État 5, Ligne 1
    Erreur de conversion du type de données varchar en numeric.


    A moins qu'il reste des caractères autres que '<' ou '>'

  6. #6
    Membre éclairé Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    Par défaut
    il doit y avoir une fonction STUFF à la place de REPLACE (en même temps il aurait surement mis une erreur sur le REPLACE)

    peut-être des espaces dans tes chaînes ??
    Ignorer c'est aussi croire que l'on sait.
    Merci d'essayer d'écrire correctement.
    Pas de questions techniques par MP SVP.

  7. #7
    Membre régulier
    Inscrit en
    Juillet 2003
    Messages
    207
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 207
    Points : 85
    Points
    85
    Par défaut
    Autre erreur :

    SELECT CAST(STUFF(STUFF(valeur, '<>', ''),'>','') AS numeric)
    FROM dbo.ResultatTravail;

    Serveur : Msg 174, Niveau 15, État 1, Ligne 1
    La fonction stuff requiert 4 arguments.


    Mais oui comme je le dis dans le premier post, il peut y avoir des espaces.

  8. #8
    Membre éclairé Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    Par défaut
    Tu remplaces aussi les espaces par rien !! (j'avais oublié...)

    (ça vient donc pas du replace)

    en plus yavait une erreur bidon dans mon code il faut remplacer ">","<"," " et non pas <> bien sûr
    Ignorer c'est aussi croire que l'on sait.
    Merci d'essayer d'écrire correctement.
    Pas de questions techniques par MP SVP.

  9. #9
    Membre régulier
    Inscrit en
    Juillet 2003
    Messages
    207
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 207
    Points : 85
    Points
    85
    Par défaut
    Cool !!
    Merci beaucoup ça marche.
    La requête un peu plus longue car d'autres caractères mais ça marche.

    SELECT CAST(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(valeur,'env.',''),'ppm',''),'*',''),'kcps',''),'%',''),' ',''),'<',''),'>','') AS numeric)
    FROM dbo.ResultatTravail


    Merci encore

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

Discussions similaires

  1. [PL/SQL] Supprimer les caractères non numériques
    Par Oliveuh dans le forum PL/SQL
    Réponses: 6
    Dernier message: 25/06/2015, 12h13
  2. [MySQL] requete update et insert dans table de liaison
    Par rollingboy dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 21/06/2014, 18h34
  3. requete update et insertion dans 2 tables
    Par croke dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 28/05/2008, 12h45
  4. [SQL-2005] Rechercher des caractères non numériques
    Par castaka dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 03/05/2007, 11h12
  5. Interdire une frappe d'un caractére non numérique
    Par fatati dans le forum C++Builder
    Réponses: 13
    Dernier message: 12/12/2006, 09h56

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