如果原始值与任何When_Expression都不匹配,则返回原始值

2022-03-03 00:00:00 sql tsql sql-server case-when

我的SQL导出字段中有一行,如果字段与姓氏中的"AMA"完全匹配,我会尝试删除字段中的返回值为空值。但是,当我使用当前代码导出文件时,姓氏不是"AMA"的名称被完全空白。

,Max(
    Orders.ShipFirstName
    + ' ' +  
        CASE Orders.ShipLastName
            WHEN 'AMA' THEN ''
        END
) As ShipFullName

现在,如果某人是"Ray Miller",ShipFullName将返回为空。但是如果他们的名字是"Ray AMA",那么他们的名字就会被返回为"Ray"。我需要它,以便在姓氏字段中找不到AMA时返回"Ray Miller"。


解决方案

为避免尾随空白,我将执行以下操作:

max(
    case 
        when Orders.ShipLastName = 'AMA' then Orders.ShipFirstName
        else Orders.ShipFirstName + ' ' + Orders.ShipLastName
    end
) as ShipFullName

相关文章