PostgreSQL 9.3:将一列拆分为多列

MAK*_*MAK 4 postgresql split postgresql-9.3

我想将colb下面给出的示例中的一列拆分为两列,例如column1column2

我有一个包含两列的表:

示例

create table t3
(
    cola varchar,
    colb varchar
);
Run Code Online (Sandbox Code Playgroud)

插入:

insert into t3 values('D1','2021to123'),
                     ('D2','112to24201'),
                     ('D3','51to201');
Run Code Online (Sandbox Code Playgroud)

我想将colb值分成两列,如下面的预期结果:

预期结果

cola      column1        column2
---------------------------------
D1        2021           123
D2        112            24201
D3        51             201
Run Code Online (Sandbox Code Playgroud)

Viv*_* S. 10

select cola
      ,split_part(colb, 'to', 1) col1
      ,split_part(colb, 'to', 2) col2 
from t3
Run Code Online (Sandbox Code Playgroud)

引用自 PostgreSQL 文档:

split_part(字符串文本,分隔符文本,字段整数)

在分隔符上拆分字符串并返回给定的字段(从 1 开始计数)