Comment écrire un IF ELSE dans une instruction SELECT dans MSSQL 2008?

Voici ce que j'essaie de faire:

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

Malheureusement réalisé ceci n'est pas compatible avec MSSQL2008. Donc essayé d'écrire un IF ELSE mais cela ne fonctionne pas non plus.

 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?

Utilisez CASE ... WHEN . La logique la plus concise semble être:

 SELECT CASE WHEN d.ItemType IN ('INVOICE', 'PACKING') THEN 0 ELSE 1 END AS MissingDocuments FROM dbo.DocumentDetails AS d 

c'est-à-dire que le document est manquant s'il ne s'agit pas d'une «facture» ou d'un «emballage»

Je pense que vous cherchez Case When essayez ceci ..

 SELECT case when d.ItemType = 'INVOICE' or d.ItemType = 'PACKING' then 0 ELSE 1 END AS MissingDocuments FROM dbo.DocumentDetails AS D