Лучший способ написать «Случай, когда несколько условий» - PullRequest
4 голосов
/ 11 марта 2019

Я написал следующий запрос, чтобы помочь мне сегментировать мои данные в разные ячейки. Здесь более 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

1 Ответ

6 голосов
/ 11 марта 2019

использование 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'
...