如何将列中分隔的分号数据显示为多行?

时间:2013-09-05 05:05:06

标签: sql postgresql-9.1

我有一张如下表格。

Id      NAME
---     ------
1        A;B;C
2        D;E

我想获取如下数据

Id      Name
---     -----
1       A
1       B
1       C
2       D
2       E

任何人都可以帮我吗?

1 个答案:

答案 0 :(得分:0)

我认为你的表就像这样

    id          |   NAME
----------------+----------
    1           |    A;B;C;
    2           |    D;E

然后你想修改如下

    id          |   Name
----------------+----------
    1           |    A
    1           |    B
    1           |    C
    2           |    D
    2           |    E

请尝试以下查询

select i.id,s.NAME from tablename i, unnest(string_to_array(i.NAME, ';')) s(Name);