case 表达式中的 charindex

charindex in case expression

我是 SQL 服务器的新手,收到了以下案例说明,但我很难理解它在做什么。

我认为它采用 835 列来检查索赔值是否为(大于 1),如果是,则重新查看该列并引入索赔 ID。这就是我的想法。有人可以向我解释一下它在做什么吗?

case
    when charindex(' ', ltrim(rtrim(ani.edi835claimicn))) > 1 then
        substring(ltrim(rtrim(ani.edi835claimicn)), 1, charindex(' ', ltrim(rtrim(ani.edi835claimicn))) - 1)
    else
        ltrim(rtrim(ani.edi835claimicn))
end as icn

它只是提取输入字符串中第一个 space 字符之前的子字符串(列 ani.edi835claimicn 内的值)。如果字符串不包含 space,则按原样使用输入字符串。