DB2 V11.2中替换字符串第113位字符的解决方案求助
DB2 V11.2 替换字符串第113位字符的解决方案
你当前使用的REPLACE方法会替换所有匹配的字符,不符合仅替换指定位置的需求。在DB2 V11.2中,可通过CASE结合LENGTH和SUBSTR函数实现精准替换,且字符串长度不足113时不做处理:
SELECT CASE WHEN LENGTH(COLUMN_NAME) >= 113 THEN SUBSTR(COLUMN_NAME, 1, 112) || 'N' || SUBSTR(COLUMN_NAME, 114) ELSE COLUMN_NAME END AS MODIFIED_COLUMN FROM TABLE_NAME;
逻辑说明
LENGTH(COLUMN_NAME) >= 113:先判断字符串长度是否足够覆盖第113位,不足则直接返回原字符串SUBSTR(COLUMN_NAME, 1, 112):截取原字符串的前112个字符|| 'N' ||:拼接需要替换的目标字符'N'SUBSTR(COLUMN_NAME, 114):截取原字符串从第114位到结尾的部分(若原字符串刚好113位,此部分返回空字符串,不影响最终拼接结果)
内容的提问来源于stack exchange,提问作者Bernd
相关产品推荐
相关产品推荐

