sql - 如何用单个字符替换字符串值
问题描述
我想屏蔽除最后四个字符之外的数据。
例如:
如果有一
varchar
列(名称)的值为Rio De janerio
,我想将其屏蔽为xxx xx xxxerio
。如果它是
numeric
具有值的列(acc number)123 453 6987
,那么我希望它显示为000 000 6987
。
我尝试使用正确和替换功能。但我找不到解决方案。
屏蔽除最后四个之外的数据characters/numbers
解决方案
在 Oracle 上,您可以尝试以下查询以用 0 替换数字 -
SELECT REGEXP_REPLACE (SUBSTR('123 453 6987', 1, LENGTH('123 453 6987')-4), '\d', '0') || SUBSTR('123 453 6987', -4, 4) PROCESSED_STRING
FROM DUAL;
PROCESSED_STRING
000 000 6987
对于用#s 替换字符串 -
SELECT REGEXP_REPLACE (SUBSTR('Rio De janerio', 1, LENGTH('Rio De janerio')-4), '\S', '#') || SUBSTR('Rio De janerio', -4, 4) PROCESSED_STRING
FROM DUAL;
PROCESSED_STRING
### ## ###erio
这是小提琴。
推荐阅读
- java - 将数据集写入不同的 XML 文件
- c# - 持久层和业务逻辑调用c#的多态性问题
- php - URL中的&rand=是什么意思`php?L=domain_name&P=smart@domain_name&rand=0.3747900246217`
- javascript - 在新路由 onClick 中呈现动态数据 - React JS
- json - Spark SQL Collect_list(struct) 保存为 json
- python - 隐藏excel的数据透视表字段标题
- r - 在表格的 y 轴上按组提取前 10 个值
- java - java 扫描器仅在检测到整数时才继续
- c++ - Qt 的 QVector3D::operator[] 是否有未定义的行为?
- c# - 从 WebBrowser 中加载的页面中的链接打开本地 html 文件