Fonction IsNull () sql

J'essaye d'incrémenter la valeur d'un champ de colonne nommé "Number" par 1, et si la valeur est actuellement Null, je voudrais mettre la valeur à 1 car une valeur Null ne peut pas être incrémentée. J'ai découvert la fonction isNull () et n'obtiens pas les résultats en utilisant l'instruction suivante:

Update SomeTable set Number = IsNull(Number, Number+ 1) where ItemCode = '000000' ; 

Ma question est fondamentalement comment mettre à jour simultanément une valeur de champ par l'incrément de 1 et mettre la valeur à 1 si elle est actuellement "NULL"

Merci!

Supprimer le Number du deuxième paramètre de la fonction ISNULL .

Quelque chose + NULL = NULL

alors faites le ISNULL au résultat 0 quand il est NULL et ajoutez 1 au résultat

 Update SomeTable set Number = IsNull(Number, 0) + 1 where ItemCode = '000000' ; 

ou

 Update SomeTable set Number = IsNull(Number+1, 1) where ItemCode = '000000' ; 

ou deux mises à jour différentes (non recommandé)

 Update SomeTable set Number = Number + 1 where ItemCode = '000000' AND Number IS NOT NULL; Update SomeTable set Number = 1 where ItemCode = '000000' AND Number IS NULL; 

ISNULL fonction ISNULL choisit la valeur alternative si la valeur principale est null.

 UPDATE SomeTable SET Number = CASE WHEN Number IS NULL THEN 1 ELSE Number + 1 END WHERE ItemCode = '000000' ; 

Ou

 UPDATE SomeTable SET Number = ISNULL(Number, 0) + 1 WHERE ItemCode = '000000' ; 

L'instruction WHERE ItemCode = '000000'; mettra à jour tous les loggings avec le code de cet article: 000000 . Une update SomeTable set Number = 1 simple update SomeTable set Number = 1 résoudra votre problème.

Le plus simple est d'utiliser coalesce pour fournir une valeur par défaut de 0 lorsque NULL est trouvé, comme dans

 Update SomeTable set Number = coalesce(number,0) + 1 where ItemCode = '000000' ;