sql - 即使使用 SUBSTRING 和 CHARINDEX 不存在特殊字符,也返回列值
问题描述
我正在使用 SQL 并尝试在特殊字符(如<
.
我用过这个 SQL:
SUBSTRING(ACTIVITY.Name, 0, CHARINDEX('<', ACTIVITY.Name, 2)) AS ActivityIdentifier
当列中有 a 时,它工作得非常好<
,但是当一个不存在时,我没有得到任何结果。即使字符不存在,我也需要能够返回列值。
我查看了RTRIM
,LEFT
和LEN
函数,但由于我的Activity Name
长度可能不同,它们似乎不合适。
我会很感激任何建议。
解决方案
我认为最简单的解决方法是将 a 附加'<'
到字符串:
SUBSTRING(ACTIVITY.Name, 1, CHARINDEX('<', ACTIVITY.Name + '<', 2)) as ActivityIdentifier
如果你不想要'<'
结果,那么:
SUBSTRING(ACTIVITY.Name, 1, CHARINDEX('<', ACTIVITY.Name + '<', 2) - 1) as ActivityIdentifier
推荐阅读
- python - 有没有办法训练 ML 模型将单词分类?
- python-3.x - 在 Python 中检查回文三角形正方形
- python - 熊猫 groupby + 变换和多列
- java - Intellj 无法解析符号 Junit., Cucumber
- oracle - Oracle SQL 需要某个日期后月份的第一天和最后一天的列表
- python - 为什么 expm(2*A) != expm(A) @ expm(A)
- python - 我想应用循环,但我不知道如何在我的代码上应用它
- php - PHP - 更新 mysql 数据库的 ajax 请求
- apache - 当我访问 /folder/ URL 时,Mod 重写规则以服务 folder.php
- max - 如何有效地检索 Torch 张量中最大值的索引?