我在 SQL Server 中有以下(虚拟)数据:
数量 | 姓名 |
---|---|
0 | 苹果 |
0 | 梨子 |
0 | 香蕉 |
1 | 橙色 |
1 | 芒果 |
2 | 柠檬 |
如何编写 case 表达式“当数字 = 0 并且名称都是 Apple 和 Banana”时
我试过这个:
SELECT DISTINCT
,CASE
WHEN Number = '0' AND Name = 'Apple'
THEN
CASE
WHEN Number = '0' AND Name = 'Banana'
THEN 'Approved'
END
END AS 'ApprovedFlag'
我原本期待“已批准”,但结果却为空。
数据
CREATE TABLE dummy(
Number INTEGER NOT NULL
,Name VARCHAR(60) NOT NULL
);
INSERT INTO dummy
(Number,Name) VALUES
(0,'Apple'),
(0,'Pear'),
(0,'Banana'),
(1,'Orange'),
(1,'Mango'),
(2,'Lemon');
使用
In
您的 case
select
Number,
Name,
case when Number=0 and name in ('Apple','Banana') then 'Approved'
else 'NotApproved' end as ApprovedFlag
from dummy
结果
数量 | 姓名 | 批准标志 |
---|---|---|
0 | 苹果 | 已批准 |
0 | 梨子 | 未批准 |
0 | 香蕉 | 已批准 |
1 | 橙色 | 未批准 |
1 | 芒果 | 未批准 |
2 | 柠檬 | 未批准 |