且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

存储过程中的SQL case语句

更新时间:2023-02-07 11:12:18

如果要连接Invalid Date, Mileage Exceeded之类的结果,那么您可能正在寻找类似的东西.

If you want to concatenate results like Invalid Date, Mileage Exceeded then you may be looking for something like this.

ISNULL(
    NULLIF(
        STUFF(
            CASE WHEN DateOfLoss < PolicyStartDate THEN ', Invalid Date' ELSE '' END
            + CASE WHEN MilesDriven > TotalMilesAllowed THEN ', Mileage exceeded' ELSE '' END
            + CASE WHEN LossStatusCode != 'R' THEN ', Status code is Review' ELSE '' END
        , 1, 2, '')
    ,'')
, 'Unknown issue')
As NotArchiveableReason

STUFF()删除前导逗号. NULLIF()将空字符串转换为null. ISNULL()语句条件都不满足时,ISNULL()将填充未知问题".

The STUFF() removes the leading comma. The NULLIF() converts the empty string to null. The ISNULL() will populate "Unknown Issue" when none of the CASE statement conditions are met.