CASE表达辅助

问题描述 投票:0回答:1

我在 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'

我原本期待“已批准”,但结果却为空。

sql sql-server case
1个回答
0
投票

数据

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

dbfiddle

结果

数量 姓名 批准标志
0 苹果 已批准
0 梨子 未批准
0 香蕉 已批准
1 橙色 未批准
1 芒果 未批准
2 柠檬 未批准
© www.soinside.com 2019 - 2024. All rights reserved.