从Postgresql

时间:2019-05-29 09:11:58

标签: postgresql

我有一个包含多个列的表,该表具有一个名为category的列。列中的每个条目都由多个单词组成。每行有不同数量的单词。如何创建具有一个列的另一个表,其中每个条目都是上一个表的Categories列中的一个单词?

我要定位的表和列:

  • 类别
    1. 高尔夫,积极生活
    2. 特色食品,餐厅,点心,进口食品,食品,中餐,民族食品,海鲜

我想要另一个有一个列的表:

  • 类别
    1. 高尔夫
    2. 积极生活
    3. 特色食品
    4. 餐馆
    5. 点心
    6. ...

编辑:对于将来的任何人,我都需要一个永久表。查看评论以获取完整答案。

1 个答案:

答案 0 :(得分:0)

好的,很容易在PG中实现,只需使用string_to_arrayunnest函数,如下所示:

select
    unnest(string_to_array(categories,',')) as word
into my_new_table
from
    table

以下示例:

select unnest(string_to_array('Specialty Food, Restaurants, Dim Sum, Imported Food, Food, Chinese, Ethnic Food',','));
     unnest     
----------------
 Specialty Food
  Restaurants
  Dim Sum
  Imported Food
  Food
  Chinese
  Ethnic Food
(7 rows)

希望它对您有用。