Question

I have the following SQL CASE statement. I would like to include NULL values as part of the 'SENNo' condition:

SEN = CASE --SEN
    WHEN @Subgroup = 'SENA' THEN 'A'
    WHEN @Subgroup = 'SENP' THEN 'P'
    WHEN @Subgroup = 'SENS' THEN 'S'
    WHEN @Subgroup = 'SENNo' THEN 'N'
END

So I would like it to effectively do the following:

SEN = CASE --SEN
    WHEN @Subgroup = 'SENA' THEN 'A'
    WHEN @Subgroup = 'SENP' THEN 'P'
    WHEN @Subgroup = 'SENS' THEN 'S'
    WHEN @Subgroup = 'SENNo' THEN 'N' OR NULL
END

This doesn't work, but I'm not sure how to structure my logic.

EDIT: Here's the solution after jparask's suggestion set me on the right track:

           ISNULL(SEN, 'N') = CASE --SEN
                   WHEN @Subgroup2 = 'SENA' THEN 'A'
                   WHEN @Subgroup2 = 'SENP' THEN 'P'
                   WHEN @Subgroup2 = 'SENS' THEN 'S'
                   WHEN @Subgroup2 = 'SENNo' THEN 'N'
               END
Was it helpful?

Solution

SEN = CASE --SEN
    WHEN @Subgroup = 'SENA' THEN 'A'
    WHEN @Subgroup = 'SENP' THEN 'P'
    WHEN @Subgroup = 'SENS' THEN 'S'
    WHEN ISNULL(@Subgroup,'SENNo') = 'SENNo' THEN 'N' 
END

or

SEN = CASE --SEN
    WHEN @Subgroup = 'SENA' THEN 'A'
    WHEN @Subgroup = 'SENP' THEN 'P'
    WHEN @Subgroup = 'SENS' THEN 'S'
    WHEN @Subgroup IS NULL OR @Subgroup = 'SENNo' THEN 'N' 
END
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top