我正在寻找 HSQLDB 的查询。
我有一个字符串,其中包含由“/”分隔的地址信息。现在我必须用“/”分割该字符串并将各个地址信息插入到单独的列中。
Address = /1234/CLAREVIEW////WILMINGTON/DE/19702
这需要拆分为
StreetNo = Address[1] = 1234
StreetName = Address[2] = CLAREVIEW
StreetType = Address[3] =
City = Address[6] = WILMINGTON
StateCd = Address[7] = DE
ZipCd = Address[8] = 19702
我怎样才能实现这个目标?
最佳答案
使用 REGEXP_SUBSTRING_ARRAY 函数创建 PROCEDURE 以拆分为数组。
REGEXP_SUBSTRING_ARRAY('/1234/CLAREVIEW////WILMINGTON/DE/19702', '/\p{Alnum}*');
返回
ARRAY['/1234','/CLAREVIEW','/','/','/','/WILMINGTON','/DE','/19702']
因此该过程应包含:
CREATE PROCEDURE INSERT_USING_REGEXP (p1 VARCHAR(500))
BEGIN ATOMIC
DECLARE arr VARCHAR(200) ARRAY;
SET arr = REGEXP_SUBSTRING_ARRAY(p1,'/\p{Alnum}*');
INSERT INTO thetable ((StreetNo, StreetName, StreetType...) VALUES ( arr[1], arr[2], arr[3], ...);
END;
然后
CALL INSERT_USING_REGEXP('/1234/CLAREVIEW////WILMINGTON/DE/19702');
关于SQL - 使用多次出现的 "/"分割字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46063019/