Come fare un IF...THEN in Sql Server

Come si scrive la condizione IF...THEN in una query SELECT in Sql Server?

Vorrei ottenere qualcosa del genere, facendo una select sui prodotti del mio magazzino vorrei ritornato 1 se esso ha giacenza e quindi disponibile ad essere venduto altrimenti 0 per contrassegnarlo come da ordinare, come si scrive questa query?

In Corso 5
Sql Server 13-06-2018 2 Risposte 5910 Visite +3

Risposte ( 2 approvate )

  1. Filippo De Buglia
    +2
    13-06-2018 11:46:21
    Rispondi

    Nel tuo caso è comodo usare il costrutto CASE in questo modo:

    SELECT CASE 
                WHEN Stock > 0 
                   THEN 1 
                   ELSE 0 
           END as Vendibile, * 
    FROM Products

    Nel result set di questa select avrai una nuova colonna 'Vendibile' con valore 1 o 0 a seconda della giacenza disponibile o meno, fai attenzione che questi sono valori int e non booleani quindi trattali adeguatamente.

  2. Claudio Zarpone
    +1
    13-06-2018 11:52:04
    Rispondi

    A partire dalla versione 2012 di Sql Server puoi utilizzare IIF che non è altro che una scorciatoia per scrivere un costrutto CASE in modo abbreviato.

    Rifacendomi all'esempio di query scritta da Filippo, la tua select con IF...THEN avrebbe questa sintassi:

    SELECT IIF(Stock > 0, 1, 0) as Vendibile, * FROM Products

    Come vedi risulta più corta, elegante ed anche più leggibile. Infine nel primo 'parametro' della IIF puoi combinare la condizione (se ti serve) da verificare anche con altri operatori booleani.

Rispondi

Per poter rispondere a questa domanda, devi essere registrato e loggato sul sito, dopodichè compila il box sottostante cercando di essere il più chiaro ed esauriente possibile, la tua risposta potrebbe essere la soluzione che l'utente cerca ed essere contrassegnata come migliore, consentendoti così di ottenere punti ed autorevolezza.

Davide Cartonese

Davide Cartonese

Autore di questa domanda

 Domanda Precedente

 Elenco Domande 

Domanda Successiva