简体   繁体   中英

Using a CASE WHEN with multiple Whens that is only resulting in a BOOLEAN value

I am working on writing a SQL Query which is using a CASE line with multiple When's, and I was wondering why my result is only showing BOOLEAN (True/False) Values. Ideally I would like it to show whatever is after the THEN's in my code.

--with loan as (
SELECT DISTINCT
rtw.identifierdimsk
,lmmf.milestonesk
,lmd.groupname
,rtw.typecode
,rtw.campaignname
,rtw.partnername
,rtw.sourcename
,lmmf.date
,rtw.typecode = CASE WHEN rtw.typecode = 'PROS' THEN 'Prospect'
               WHEN rtw.typecode = 'CARI' THEN  'Deluxe'
               WHEN rtw.typecode = ('CARIC') OR rtw.typecode = ('CTE') THEN  'CSignal'
               WHEN rtw.typecode = 'RMT' THEN  'Pre Pull'
               WHEN rtw.typecode in ('90','90PLUS','C90','C90PLUS','BP','ELO','AUTO','POP') THEN  'In-process'
               WHEN rtw.typecode = 'XU3%' THEN  'U3'
               WHEN rtw.typecode = '%CT%' THEN 'Misc'
               END AS Value
FROM rtal_winner rtw
INNER JOIN one_fact lmmf ON lmmf.identifierdimsk = rtw.identifierdimsk
INNER JOIN one_dim lmd ON lmd.milestonesk = lmmf.milestonesk
AND lmmf.date >= '2022-10-25'

Because you are comparing rtw.typecode to the result of the case expression:

rtw.typecode = CASE ...

remove the comparison part:

, lmmf.date
, CASE 
    WHEN rtw.typecode = 'PROS' THEN 'Prospect'
    -- ...
  END AS Value
FROM rtal_winner rtw

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM