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 :

Transformer une valeur zéro en donnée Null


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Homme Profil pro
    Ingénieur géologue
    Inscrit en
    Août 2008
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur géologue

    Informations forums :
    Inscription : Août 2008
    Messages : 125
    Billets dans le blog
    4
    Par défaut Transformer une valeur zéro en donnée Null
    Bonjour,
    J'exporte des tables Excel vers SQL server. A l'arrivée et parfois, certaines cellules vides sur Excel se retrouvent en SQL avec des valeurs zéro (0). Comment demander à SQL de transformer ces valeurs zéro en données vide (Null).
    Merci

  2. #2
    Membre éclairé
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    311
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 311
    Par défaut
    Salut,

    un simple update suffira

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    UPDATE ma_table
    SET nom_colonne = NULL
    WHERE nom_colonne = 0
    ... mais est-ce que dans tous les cas ce 0 est bien une valeur manquante ?

  3. #3
    Membre confirmé

    Homme Profil pro
    Ingénieur géologue
    Inscrit en
    Août 2008
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur géologue

    Informations forums :
    Inscription : Août 2008
    Messages : 125
    Billets dans le blog
    4
    Par défaut Valeur zéro en null
    Merci pour votre réponse. Effectivement ça marche, mais comment faire quand j'ai plusieurs colonnes et que pour chaque colonne je dois avoir la condition "where". Les colonnes de ma table correspondent à des analyses chimiques. la valeur 0 signifie que ma teneur pour un élément est égale à zéro or valeur "null" pourrait signifier que cet élément n'a pas été analysé.

  4. #4
    Membre éclairé
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    311
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 311
    Par défaut
    Salut,

    Quelle est ta question ? Je n'ai pas compris...

    Tu veux tester des valeurs NULL ? Si oui tu peux utiliser IS NULL dans le WHERE.

    @+

  5. #5
    Membre confirmé

    Homme Profil pro
    Ingénieur géologue
    Inscrit en
    Août 2008
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur géologue

    Informations forums :
    Inscription : Août 2008
    Messages : 125
    Billets dans le blog
    4
    Par défaut Valeur zéro en null
    Merci encore. Par exemple j'ai table "Table1" avec des colonnes C1,C2, C3..Je cherche avec l'update de convertir les valeurs zéro des colonnes en "Null". C'est à dire avoir quelque chose comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Update table1
    set
    Table1.C1=Null
    Where table1.C1=0
    Table1.C2=Null
    Where Table1.C2=0
    etc...
    J'ai essayé ça mais apparemment c'ets faux.

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Votre syntaxe n'est effectivement pas bonne, mais je vous propose plutôt d'utiliser la fonction NULLIF.
    Le where n'est pas indispensable ici.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    UPDATE table1
       SET C1 = NULLIF(C1, 0),
           C2 = NULLIF(C2, 0),
           C3 = NULLIF(C3, 0)

  7. #7
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 134
    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 134
    Par défaut
    Deux possibilités :
    Soit une requête de mise à jour par colonne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    UPDATE  Table1
    SET     Table1.C1 = NULL
    WHERE   Table1.C1 = 0;
    UPDATE  Table1
    SET     Table1.C2 = NULL
    WHERE   Table1.C2 = 0;
    ...
    Soit une requête unique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    UPDATE  Table1
    SET     Table1.C1 = (CASE Table1.C1 WHEN 0 THEN NULL ELSE Table1.C1 END)
        ,   Table1.C2 = (CASE Table1.C2 WHEN 0 THEN NULL ELSE Table1.C2 END)
    ...
    WHERE   Table1.C1 = 0
        OR  Table1.C2 = 0
    ...
    ;
    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.

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

Discussions similaires

  1. Comment transformer une valeur numérique en chaine dans une requête ?
    Par jmlabatut dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 21/11/2009, 05h44
  2. [XSLT]Transformer une valeur d'attribut en élément
    Par heffer69 dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 01/02/2008, 11h48
  3. transformer une valeur 0 ou 1 en checkbox ?
    Par kikidrome dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/09/2007, 14h51
  4. Comment affecter une valeur par defaut si null?
    Par cassy dans le forum Langage SQL
    Réponses: 3
    Dernier message: 31/07/2006, 19h13
  5. Réponses: 8
    Dernier message: 11/08/2005, 09h32

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