sql - 在 sql 中考虑空值的子字符串替代方案
问题描述
我在 Oracle SQL 中有我的更新语句,在我的 MISC_FLAGS 的第 9 个字节之后连接 N
UPDATE SYS_CODE
SET MISC_FLAGS = SUBSTR(MISC_FLAGS, 1, 9) || 'N',
mod_date_time = sysdate,
user_id = 'Feature Number'
WHERE REC_TYPE = 'X'
AND CODE_TYPE = 'XXX'
AND CODE_ID = 'XXXX';
但在某些情况下,我们将 Misc Flag 中的示例第 8 和第 9 字节设置为空。在这些情况下,子字符串不考虑第 8 和第 9 个字节,并将第 8 个字节更新为 N 而不是第 10 个。
有没有人有替代方案?
解决方案
我认为你想要RPAD()
:
MISC_FLAGS = RPAD(SUBSTR(MISC_FLAGS, 1, 9), 9, ' ') || 'N'
MISC_FLAGS
如果少于 9 个字符,这会添加空白字符。
推荐阅读
- mysql - 配置 NodeExpress 以部署和防止内部错误 500
- azure-devops - 将管道“名称”的值获取到 Azure 管道中的 PowerShell 命令中
- reactjs - 单击 isClearable 时反应选择不会更新为默认值
- c# - 执行 DbCommand 失败
- c# - 我无法在 VS 2019 中添加服务参考
- javascript - main.js:1 错误类型错误:无法读取 null 的属性“querySelectorAll”
- databricks - 在 pyspark databricks 中并行执行多个笔记本
- apache-nifi - 如何在 Apache NiFi 中使用 Python 和 Pandas 将 CSV 转换为 Excel?
- visual-c++ - 你好,我刚刚下载了vs代码,我还是新手。我试图查看有关如何解决此问题的教程,但我找不到任何东西,请帮助我
- sql-server - 仅 XML 数据将 1 行导入 SQL 表