sql - 需要识别和替换一行中的一段字符串
问题描述
我正在使用安装了扩展工具包的 netezza 数据库。我对这项工作比较陌生,而且我应该创建的脚本有问题。
我的任务是能够识别列中是否包含特定的数值,如果是,则将其替换为行。
例如,如果值为“此字符串包含此限制值 4402631524852147 并且需要屏蔽”,我的脚本需要将这些更改为“此字符串包含此限制值 ************2147它需要蒙面”
我已经能够使用 sqlext..regexpextract 和 sqleext..regexp_like 创建一个查询来识别值,但我不知道如何替换字符串。
我用来识别值的查询:
SELECT ${COLUMN_NAME},'XXXXXXXXXXXXXXXX'||SUBSTR(${COLUMN_NAME},13,4) as
MASKED_ID
FROM ${TABLE_NAME}
WHERE sqlext..regexp_like(${COLUMN_NAME},'[0-9]{16}','I')
AND SUBSTR(sqlext..regexp_extract(${COLUMN_NAME},'[0-9]{16}','I'),1,6) in
('440263')
有没有办法使用 sqlext..regexp_replace?或者另一个要替换的 SQL 命令?
解决方案
推荐阅读
- python - 用python读取复杂的html表
- mysql - Best use of database for storing large scientific data sets
- xamarin - 自定义渲染器中的 e.OldElement 和 e.NewElement
- google-analytics - 如何使用 userDeletionRequests:upsert 从 Firebase 中删除用户分析数据?
- postgresql - SELECT 使用新的 CREATE PROCEDURE 方法
- javascript - Vue 组件作为另一个组件的子组件
- ios - UIStackView 图层属性
- jquery - 如何设置更改的值?
- wireshark - Wireshark 捕获过滤器可以扫描两种不同的模式吗?
- python - Python telnet 开关连接关闭