在房号之前的地址字段中插入逗号

时间:2019-07-19 09:08:13

标签: sql db2 ibm-midrange db2-400

我有一个表,其中有很多没有逗号的地址字段 在街道名称和门牌号之间。 像这样:

"VIA MILANO 123"
"VIA MILANO    A123"
"VIA 11 MILANO      AA123"

我需要的是一条在逗号之前插入逗号的SQL 最后一个包含数字的组...例如:

"VIA MILANO, 123"
"VIA MILANO,    A123"
"VIA 11 MILANO,      AA123"

我在网上发现了一些东西,但是很多想法都不适用于IBM DB”。

有人可以帮我吗? 我要解决的文件超过100000个。

预先感谢 丹尼斯

1 个答案:

答案 0 :(得分:0)

Db2 for i 7.2支持REGEXP_REPLACE函数

https://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_72/db2/rbafzscaregexp_replace.htm

尝试一下

SELECT c, REGEXP_REPLACE(c,'(\s+\S*\d+\s*$)',',\1') 
FROM TABLE(
    VALUES
     ('VIA MILANO 123     ')
    ,('VIA MILANO A123    ')
    ,('VIA 11 MILANO AA123')
) AS t(c)

返回

 C                      2
 -------------------    --------------------
 VIA MILANO 123         VIA MILANO, 123
 VIA MILANO A123        VIA MILANO, A123
 VIA 11 MILANO AA123    VIA 11 MILANO, AA123

正则表达式提供了一种强大而灵活的方式来操作字符串,这是值得学习的。

https://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_72/db2/rbafzregexp_like.htm#rbafzregexp_like__regexp_likecontrol