PostgreSQL:将regexp_split_to_table结果合并为一列?

时间:2017-02-25 20:36:55

标签: sql postgresql

我正在使用数据库并尝试获取出现在3列中的所有单词。我从列titledescriptionmanufacturer中进行选择,并使用regexp_split_to_table拆分为空格/标点符号/其他相关分隔符上的字词。

现在我正在显示3个不同的列,每个列分别包含titledescriptionmanufacturer的结果,但我想要一列word显示所有列的结果。

这是我到目前为止所拥有的:

 SELECT regexp_split_to_table(trim(lower(title)), '\s+|[.()?<>!""@#$%&*;-_\/]+|[0-9]+|([0-9]+x{1}[0-9]+|[0-9]+|([0-9]+x{1}[0-9]+)')
        AS word1,
        regexp_split_to_table(trim(lower(description)), '\s+|[.()?<>!""@#$%&*;-_\/]+|[0-9]+|([0-9]+x{1}[0-9]+|[0-9]+|([0-9]+x{1}[0-9]+)')
        AS word2,
        regexp_split_to_table(trim(lower(manufacturer)), '\s+|[.()?<>!""@#$%&*;-_\/]+|[0-9]+|([0-9]+x{1}[0-9]+)\s+|[.()?<>!""@#$%&*\/]+|[0-9]+|([0-9]+x{1}[0-9]+)')
        AS word3
FROM amazon
LIMIT 500;

1 个答案:

答案 0 :(得分:1)

select  regexp_split_to_table (title||' '||description||' '||manufacturer,'[^a-zA-Z]')

from    amazon