SQL - 使用多次出现的 "/"分割字符串

标签 sql string split hsqldb

我正在寻找 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/

相关文章:

c - 如何在c中将字符串从一维数组复制到二维数组?

Java-如何将数字字符串转换为字母数组

mysql - SQL中的AND语句总是被执行吗?

php - 如何在 MySQL 语句中包含 PHP 变量

sql - 如何在ruby中插入一个字符串数组到sql查询

Mysql:选择2个表并根据年份将其显示到列

xcode - 如何在 Swift 中实现 ROT13 函数?

ios - 获取字符串的长度

MySQL:来自字符串拆分的动态 "IN"子句

python - 将此列表拆分为更小列表的最佳方法?