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
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
Salut,
un simple update suffira
... mais est-ce que dans tous les cas ce 0 est bien une valeur manquante ?
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
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é.
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.
@+
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:J'ai essayé ça mais apparemment c'ets faux.
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...
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)
Deux possibilités :
Soit une requête de mise à jour par colonne
Soit une requête unique
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; ...
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 ... ;
par contre, la requete ne va pas corrige le probleme de logique
Apres cela toutes les analyses realisees sur des elements dont le dosage est effectivement egale a zero seront considerees comme n'ayant jamais eu lieuLes 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é.
et c'est bien dommage pour les analyses de stat derriere ... mais cela est une autre histoire
Merci pour votre aide. J'ai vraiment un large choix et c'est très intéressant à la fin. Merci également à Dehorter olivier:
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part 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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager