I have some address string that needs to be analyzed for each component.
CREATE TABLE Table1 ("ID" int, "address" varchar(41));
INSERT INTO Table1 ("ID", "address")
VALUES
    (1, 'calle 15, lomas del avila'),
    (2, 'calle av. solano edif:Apalache apt-15');
So I need to split by different characters like ( ., ,, :, ;, <space>, -)
For one character I know how to do it.
SELECT ID, s.token
FROM   Table1 t, unnest(string_to_array(t.address, ' ')) s(token);
How chain multiple unnest and how I assign an OrderID?
| ID |         token | orderID
|----|---------------|--------
|  1 |         calle |    1
|  1 |           15, |    2
|  1 |         lomas |    3
|  1 |           del |    4
|  1 |         avila |    5
|  2 |         calle |    1
|  2 |           av. |    2
|  2 |        solano |    3
|  2 | edif:Apalache |    4
|  2 |        apt-15 |    5
For this example second row 15, will be split into 15 and null so second result can be discard and order won't change.
But in the last 2 rows edif:Apalache and apt-15 the second split will produce edif, Apalache, apt and 15 so orderID will go from 4 to 7:
|  2 | edif     |    4
|  2 | Apalache |    5
|  2 | apt      |    6
|  2 | 15       |    7
 
     
    