2016-03-08 99 views
0

如何在我的“case expression”中使用IN在“case”表达式中使用'in'语句

这是我的查询,我想算,如果任何比赛一样mumbai然后发现为mumbai:个别支数的

select TYPEOFPRODUCT, 
     SUM(CASE(BRANCH) WHEN IN('Mumbai1' OR 'Mumbai2') THEN 1 ELSE 0 END) AS 'Mumbai' 
     SUM(CASE(BRANCH) WHEN IN('Delhi1' OR 'DelhiMain') THEN 1 ELSE 0 END) AS 'Delhi' 
from los_ext 
group by TYPEOFPRODUCT 
+0

使用标识符,如列的别名,如双引号'作为“孟买”'。 (单引号用于字符串文字。) – jarlh

回答

1

你被关闭,你只需要以逗号分隔值IN而不是使用OR,并且CASE表达式有两种格式,将该字段与之后的条件相关联更加灵活,所以我更喜欢只使用它:

SELECT TYPEOFPRODUCT 
     ,SUM(CASE WHEN BRANCH IN('Mumbai1','Mumbai2') THEN 1 ELSE 0 END) AS Mumbai 
     ,SUM(CASE WHEN BRANCH IN('Delhi1', 'DelhiMain') THEN 1 ELSE 0 END) AS Delhi 
FROM los_ext 
GROUP BY TYPEOFPRODUCT 
0

它的查询语句select和

select TYPEOFPRODUCT, 
SUM(CASE WHEN (BRANCH = 'Mumbai1' OR BRANCH = 'Mumbai2') THEN 1 ELSE 0 END) AS 'Mumbai', 
SUM(CASE WHEN (BRANCH = 'Delhi1' OR BRANCH = 'DelhiMain') THEN 1 ELSE 0 END) AS 'Delhi' 
from los_ext 
group by TYPEOFPRODUCT