需要识别并替换一行中的字符串

时间:2019-02-05 18:33:37

标签: sql regex netezza

我正在使用已安装扩展工具包的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命令?

1 个答案:

答案 0 :(得分:0)