sql - 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
解决方案
它只是提取输入字符串中第一个空格字符之前的子字符串(列内的值ani.edi835claimicn
)。如果字符串不包含空格,则输入字符串按原样使用。
推荐阅读
- reporting-services - SSRS根据当天查询上个月的第一天
- c++ - 存根类已经被声明
- r - 如果我有向量“2、7、12”,如何创建向量“2、2+1、2+2、7、7+1、7+2、12、12+1、12+2” ?
- java - 如何在 JavaFX 中将 label.textProperty() 绑定到 tableView.selectedItem()
- laravel - Laravel 选择了错误的队列连接
- javascript - JS 按预定义的字符串值排序
- android - 在加载 React Native 应用程序时使用所有空白模式创建领域数据库是否可以?
- php - 获取密钥后如何登录谷歌recaptchaV3
- python - 如何在 Mac 上打开受密码保护的文件
- hibernate-validator - “HV000183 - 未找到 EL 依赖项”使用休眠验证器 7.0.0.Final / jakarta.el 4.0.1