【发布时间】:2021-10-05 05:47:41
【问题描述】:
我想用 XXXXXX 替换字符串中最后 10 位数字中的 6 位。字符串的长度可以是 16 或 19。
使用以下查询:
SELECT REPLACE('0000000000000000000',SUBSTR('0000000000000000000',-10,6), 'XXXXXX') FROM DUAL;
--Actual Output --XXXXXXXXXXXXXXXXXX0
--Expected Output--000000000XXXXXX0000
SELECT REPLACE('1234561234561234561',SUBSTR('1234561234561234561',-10,6), 'XXXXXX') FROM DUAL;
--Actual Output --123XXXXXXXXXXXX4561
--Expected Output--123456123XXXXXX4561
SELECT REPLACE('0004421640006525212',SUBSTR('0004421640006525212',-10,6), 'XXXXXX') FROM DUAL;
--Actual Output --000442164XXXXXX5212
--Expected Output--000442164XXXXXX5212
为什么前两个给出错误的结果,我该如何修复查询?
【问题讨论】:
-
这能回答你的问题吗? Replace Last character in SQL Server 2008
标签: sql oracle replace oracle12c