【问题标题】:Better way to write Case When Multiple conditions多个条件时编写案例的更好方法
【发布时间】:2019-08-01 17:09:00
【问题描述】:

我编写了以下查询来帮助我将数据分割到不同的单元格中。这有超过 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】:

    使用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'
    

    【讨论】:

    • 太棒了,谢谢你,我会看到它让我为整个领域做到这一点
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多