如何在MSSQL 2008中的SELECT语句中编写IF ELSE?

Ran*_*ghe 2 sql-server sql-server-2008

这是我想要做的:

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

不幸的是意识到这与MSSQL2008不兼容.所以尝试写一个,IF ELSE但也没有用.

SELECT  IF d.ItemType = 'INVOICE'
   0
ELSE 
   BEGIN
      d.ItemType = 'PACKING'
      0
   ELSE
      1
   END  AS MissingDocuments
FROM  dbo.DocumentDetails AS D 
Run Code Online (Sandbox Code Playgroud)

你能告诉我在这里做错了什么吗?

Stu*_*tLC 6

使用CASE ... WHEN.最简洁的逻辑似乎是:

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

即如果文件不是"发票"或"包装",则文件丢失