Précédent   Forum des professionnels en informatique > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/04/2011, 15h05   #1
Nouveau Membre du Club
 
Inscription : août 2008
Messages : 113
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 113
Points : 27
Points : 27
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
zemblamoh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2011, 15h25   #2
Membre habitué
 
Étudiant
Inscription : avril 2008
Messages : 275
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2008
Messages : 275
Points : 139
Points : 139
Salut,

un simple update suffira

Code :
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 ?
Tidus159 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2011, 13h50   #3
Nouveau Membre du Club
 
Inscription : août 2008
Messages : 113
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 113
Points : 27
Points : 27
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é.
zemblamoh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2011, 15h18   #4
Membre habitué
 
Étudiant
Inscription : avril 2008
Messages : 275
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2008
Messages : 275
Points : 139
Points : 139
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.

@+
Tidus159 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2011, 16h39   #5
Nouveau Membre du Club
 
Inscription : août 2008
Messages : 113
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 113
Points : 27
Points : 27
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 :
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.
zemblamoh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2011, 16h42   #6
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 684
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 684
Points : 10 442
Points : 10 442
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
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 :
1
2
3
4
UPDATE table1
   SET C1 = NULLIF(C1, 0),
       C2 = NULLIF(C2, 0),
       C3 = NULLIF(C3, 0)
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 02/05/2011, 16h46   #7
Modérateur
 
Avatar de al1_24
 
Homme Alain
Ingénieur d'études décisionnel
Inscription : mai 2002
Messages : 4 445
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 51
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études décisionnel
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 4 445
Points : 7 532
Points : 7 532
Deux possibilités :
Soit une requête de mise à jour par colonne
Code :
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 :
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
al1_24 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 02/05/2011, 16h52   #8
Membre émérite
 
Homme Olivier Dehorter
Ingenieur de recherche - Ecologue
Inscription : juin 2003
Messages : 697
Détails du profil
Informations personnelles :
Nom : Homme Olivier Dehorter
Localisation : France

Informations professionnelles :
Activité : Ingenieur de recherche - Ecologue

Informations forums :
Inscription : juin 2003
Messages : 697
Points : 837
Points : 837
par contre, la requete ne va pas corrige le probleme de logique

Citation:
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é.
Apres cela toutes les analyses realisees sur des elements dont le dosage est effectivement egale a zero seront considerees comme n'ayant jamais eu lieu

et c'est bien dommage pour les analyses de stat derriere ... mais cela est une autre histoire
dehorter olivier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2011, 10h39   #9
Nouveau Membre du Club
 
Inscription : août 2008
Messages : 113
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 113
Points : 27
Points : 27
Par défaut Valeur zéro en null

Merci pour votre aide. J'ai vraiment un large choix et c'est très intéressant à la fin. Merci également à Dehorter olivier:
Code :
Apres cela toutes les analyses realisees sur des elements dont le dosage est effectivement egale a zero seront considerees comme n'ayant jamais eu lieu
Pour les analyses dont le dosage qui risque d'être nul nous n'affichons pas le zéro mais la valeur extrême de la sensibilité de la méthode d'analyse qui je l'admet, peut fausser aussi les analyses statistiques.
zemblamoh est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h52.


 
 
 
 
Partenaires

Hébergement Web