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 :

Tout sur le NULL!


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    480
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 480
    Par défaut Tout sur le NULL!
    Bonjour,

    J'avoue ne pas bien comprendre comment fonctionne SQL Server, voici trois exemple de requête avec leur résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT
    	CASE WHEN isnull(AX.D3EMontant , '') = '' THEN 0 ELSE AX.D3EMontant END AS EcoTaxe
    FROM SEVEDEV1.AXASPDBS.dbo.SEV_ART_AX_ASP AX
    Msg 8114, Level 16, State 5, Line 50
    Erreur de conversion du type de données varchar en numeric.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT
    	CASE WHEN AX.D3EMontant IS NULL THEN 'TOTO' ELSE 'TATA' END
    	FROM SEVEDEV1.AXASPDBS.dbo.SEV_ART_AX_ASP AX
    TOTO

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT
    	isnull(AX.D3EMontant, 'TOTO')
    FROM SEVEDEV1.AXASPDBS.dbo.SEV_ART_AX_ASP AX
    Msg 8114, Level 16, State 5, Line 50
    Erreur de conversion du type de données varchar en numeric.

    Si quelqu'un pouvait m'expliquer la logique derrière tout ça ce serait formidable

  2. #2
    Membre expérimenté
    Inscrit en
    Février 2006
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 185
    Par défaut
    Salut,
    Quel est le type de "AX.D3EMontant" ?
    On a l'impression qu'il est du type int ou numeric

  3. #3
    Membre Expert
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Par défaut
    Bonjour,

    djlixfe a raison. Le langage SQL est fortement typé. Chaque colonne du jeu de résultat doit avoir un type de données. Si ta colonne D3EMontant est de type numeric (pour un montant, ça semble logique), tu dois proposer dans le ISNULL() une alternative du même type. SQL server ne peut pas retourner dans la même colonne des types différents. Il essaie en général de faire une conversion implicite, mais dans ce cas, il ne peut pas, car '' et 'TOTO' ne sont pas convertibles en numeric.

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

Discussions similaires

  1. div et innerHTML : tout sur une ligne?
    Par LineLe dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 04/04/2005, 11h15
  2. [CR10] Pquoi absence du message d'erreur sur les Nulls ?
    Par speed034 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 30/11/2004, 15h30
  3. Tout sur CORBA
    Par Community Management dans le forum CORBA
    Réponses: 0
    Dernier message: 11/10/2002, 17h01

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