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 ... ;
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.
Partager