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

MS SQL Server Discussion :

Convertir un VARCHAR en DECIMAL avec test en amont


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2003
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 55
    Par défaut Convertir un VARCHAR en DECIMAL avec test en amont
    Bonjour,

    Je cherche par une requête de selection à convertir un champ VARCHAR en DECIMAL (pour alimenter une table cible ou le champ est spécifié en DECIMAL).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CASE WHEN G_T1.var21 IS NULL THEN 0 ELSE CONVERT(decimal,G_T1.var21)  END
    En principe, toutes les valeurs du champs source sont au format numérique mais bien sur, certains utilisateurs font des erreurs de saisie et renseignent n'importe quoi (c'est un progiciel sans aucun contrôle).

    Je me retrouve avec une erreur de type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [SQL Server]Error converting data type varchar to numeric
    qui fait planter mon alimentation et n'insère aucune ligne dans la table cible tant que l'erreur n'est pas corrgiée.

    D'où ma question : Comment rajouter un contrôle en amont du CONVERT pour tester si le champ est bien "convertissable" en numérique ?

    Merci de votre aide et pardon si la question a déjà été posée mais j'ai bien cherché avant ...

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 010
    Billets dans le blog
    6
    Par défaut
    ISNUMERIC()

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2003
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 55
    Par défaut
    Merci, cela fonctionne !

    La syntaxe correcte est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CASE ISNUMERIC(G_T0.pj0_ref) WHEN 1 THEN CONVERT(decimal,G_T0.pj0_ref) ELSE 0  END

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

Discussions similaires

  1. Création vue avec test d'existence
    Par yan77 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 23/12/2004, 11h44
  2. [PHP-JS] var javaScript avec test php
    Par lepierre dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 01/12/2004, 12h58
  3. Convertir un varchar en float
    Par Tapioca dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 26/07/2004, 12h17
  4. UPDATE d'une table avec test d'un champ d'une autre table
    Par delphim dans le forum Langage SQL
    Réponses: 2
    Dernier message: 03/05/2004, 12h30
  5. Convertir un varchar en real ??
    Par matgel dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 06/11/2003, 19h56

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