我需要使用CASE语句评估字段。字段名称为Commodity,是varchar(255)。值不同,我需要在特定字符后从中提取特定部分。角色是''。我能够在>之后想出我想要的值。使用以下代码:
SUBSTRING(Commodity, CHARINDEX('>', Commodity) + 2, LEN(Commodity))
但我不确定如何将其用于我的CASE声明。我需要测试Is Null,然后只为它指定一个“没有商品”的值。然后我需要测试是否存在>然后实现上面的代码以返回值。然后我需要测试什么时候没有>但它不是null,只返回商品字段的值。
答案 0 :(得分:3)
您只需要在when
子句中包含这三个条件。您可以使用charindex
确保字符串中存在>
字符:
CASE
WHEN commodity IS NULL THEN 'No Comodity'
WHEN CHARINDEX('>', Commodity) > 0 THEN
SUBSTRING(commodity, CHARINDEX('>', commodity) + 2, LEN(commodity))
ELSE comodity
END