首页 > 解决方案 > case 表达式中的 charindex

问题描述

我对 SQL Server 相当陌生,并且得到了以下案例语句,我很难理解它在做什么。

我认为它会检查 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

标签: sqlsql-servercasecharindex

解决方案


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


推荐阅读