0

我有以下 SQL CASE 语句。我想将 NULL 值作为“SENNo”条件的一部分:

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

所以我希望它能够有效地执行以下操作:

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

这不起作用,但我不确定如何构建我的逻辑。

编辑:这是 jparask 的建议让我走上正轨后的解决方案:

           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
4

1 回答 1

2
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

或者

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
于 2013-10-20T14:38:51.127 回答