我有一些地址字符串,需要对每个组件进行分析。
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');
所以我需要用不同的字符分开( .
,,
,:
,;
,<space>
,-
)
有一个角色我知道怎么做。
SELECT ID, s.token
FROM Table1 t, unnest(string_to_array(t.address, ' ')) s(token);
如何链接多个unnest和如何分配一个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
在本例中,第二行15,
将被拆分为15
和null
,因此可以丢弃第二个结果,并且顺序不会改变。
但在最后2行edif:Apalache
和apt-15
中,第二次拆分将产生edif
、Apalache
、apt
和15
,因此orderID将从4到7:
| 2 | edif | 4
| 2 | Apalache | 5
| 2 | apt | 6
| 2 | 15 | 7
https://stackoverflow.com/questions/32640552
复制相似问题