我有一个表,其中有很多没有逗号的地址字段 在街道名称和门牌号之间。 像这样:
"VIA MILANO 123"
"VIA MILANO A123"
"VIA 11 MILANO AA123"
我需要的是一条在逗号之前插入逗号的SQL 最后一个包含数字的组...例如:
"VIA MILANO, 123"
"VIA MILANO, A123"
"VIA 11 MILANO, AA123"
我在网上发现了一些东西,但是很多想法都不适用于IBM DB”。
有人可以帮我吗? 我要解决的文件超过100000个。
预先感谢 丹尼斯
答案 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
正则表达式提供了一种强大而灵活的方式来操作字符串,这是值得学习的。