在多个条件下编写Case的更好方法

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

我已经编写了以下查询来帮助我将数据分成不同的单元格。这有200多个条件,所以我只提供了一个小样本。有没有更好的方式让我写这个陈述,因为从研究进展不会让我做50多个CASE WHEN....THEN陈述。

SELECT    

Company_0.CompanyID 
    ,Company_0.CoaCompanyName
    ,(CASE 
    WHEN Company_0.CompanyID = 7942127 THEN 'BLUE'
    WHEN Company_0.CompanyID = 7950986 THEN 'BLUE'
    WHEN Company_0.CompanyID = 7955733 THEN 'BLUE'
    WHEN Company_0.CompanyID = 7955922 THEN 'BLUE'
    WHEN Company_0.CompanyID = 7956194 THEN 'RED'
    WHEN Company_0.CompanyID = 9166261 THEN 'RED'
    WHEN Company_0.CompanyID = 9167003 THEN 'YELLOW'
    WHEN Company_0.CompanyID = 9167015 THEN 'YELLOW
ELSE NULL
END' AS 'CELL'

返回结果时,它应该如下所示:

ID              COMPANY NAME          CELL
-------------------------------------------------------
7942127             A                 BLUE
7950986             B                 BLUE
7955733             C                 BLUE
7955922             D                 BLUE
7956194             E                 RED
9166261             F                 RED
9167003             G                 YELLOW
9167015             H                 YELLOW
sql excel openedge case-when progress-db
1个回答
6
投票

使用in

SELECT    
Company_0.CompanyID 
    ,Company_0.CoaCompanyName
    ,(CASE 
    WHEN Company_0.CompanyID in( 7942127,7950986,7955733,7955922 ) THEN 'BLUE'
    WHEN Company_0.CompanyID in( 7956194,9166261 ) THEN 'RED'
    WHEN Company_0.CompanyID in( 9167003,9167015 ) THEN 'YELLOW'

ELSE NULL
END' AS 'CELL'
© www.soinside.com 2019 - 2024. All rights reserved.