Comment écrivez-vous un SI d'AUTRE à l'intérieur d'une instruction SELECT dans MSSQL 2008?

Voici ce que je suis en train de faire:

SELECT iif(d.ItemType = 'INVOICE', 0, iif(d.ItemType = 'PACKING', 0, 1)) AS MissingDocuments FROM dbo.DocumentDetails AS D

Malheureusement rendu compte que ce n'est pas compatible avec MSSQL2008. Donc essayé d'écrire un IF ELSE mais qui ne fonctionne pas.

SELECT  IF d.ItemType = 'INVOICE'
   0
ELSE 
   BEGIN
      d.ItemType = 'PACKING'
      0
   ELSE
      1
   END  AS MissingDocuments
FROM  dbo.DocumentDetails AS D 

pouvez-vous s'il vous plaît dites-moi ce que je fais mal ici ?

utiliser les CASE. CASE WHEN d.ItemType IN ('INVOICE','PACKING') THEN 0 ELSE 1 END
il vous manque des if déclaration dans votre else bloc. Il n'y a pas de if pour votre imbriquée else
double possible de stackoverflow.com/questions/4622/sql-case-statement-syntax
Vous devez avoir posté une réponse...ces points auraient pu être les vôtres!
Aussi longtemps que l'OP obtient une réponse, et la question se ferme, c'est du tout bon. 🙂

OriginalL'auteur Randana Eranga Goonesinghe | 2015-05-19