在多个条件下写案例的更好方法

Jac*_*ams 4 sql excel progress-db openedge case-when

我已经编写了以下查询,以帮助我将数据细分为不同的单元格。这有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'
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)

Fah*_*hmi 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'
Run Code Online (Sandbox Code Playgroud)