这就是我想要做的:
SELECT iif(d.ItemType = 'INVOICE', 0, iif(d.ItemType = 'PACKING', 0, 1)) AS MissingDocuments FROM dbo.DocumentDetails AS D
不幸的是,我意识到这与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
你能告诉我我哪里做错了吗?
发布于 2015-05-19 13:41:18
使用CASE ... WHEN
。最简洁的逻辑似乎是:
SELECT
CASE WHEN d.ItemType IN ('INVOICE', 'PACKING') THEN 0 ELSE 1 END
AS MissingDocuments
FROM dbo.DocumentDetails AS d
也就是说,如果单据不是“发票”或“包装”,就会丢失单据。
https://stackoverflow.com/questions/30317536
复制相似问题