IsNull() funzione sql

Sto tentando di incrementare il valore di un campo di colonna denominata “Numero” da 1, e se il valore è attualmente Null vorrei impostare il valore a 1 a causa di un valore Null non può essere incrementato. Ho scoperto la funzione isNull() e non ottenere i risultati utilizzando la seguente istruzione:

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

La mia domanda è fondamentalmente come aggiornare contemporaneamente il valore di un campo con incremento di 1 e impostare il valore 1 se è in fase di “NULL”

Grazie!

  • IsNull(Number,0) + 1
  • Ho capito l’errore 😉
  • Infatti, entrambi di voi l’ha fatto 🙂
  • Grazie per i vostri commenti 😉
  • In realtà, alcune persone stanno dando consigli su come modificare zero(0) a 1, anche se OP non ha ancora chiedere 🙂
InformationsquelleAutor D0uble0 | 2017-01-18



4 Replies
  1. 12

    Rimuovere Number dal secondo parametro di ISNULL funzione.

    Qualcosa di + NULL = NULL

    in modo da rendere il ISNULL risultato 0 quando è NULL e poi aggiungere 1 per il risultato

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

    o

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

    o due diversi aggiornamenti (scelta non consigliata)

    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;
  2. 0

    ISNULL funzione di scegliere l’alternativa di valore se il valore è null.

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

    O

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

    L’istruzione WHERE ItemCode = '000000'; aggiornare tutti i record con questo codice articolo: 000000. Un semplice update SomeTable set Number = 1 per risolvere il problema.

  4. -1

    Il modo più semplice è quello di utilizzare coalesce per un valore di default pari a 0 quando NULL è trovato, come in

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

Lascia un commento