拆分字符串并与红移中的另一个字符串混合

时间:2017-10-31 09:39:32

标签: sql amazon-redshift

我有两列,一列是描述,另一列中相应的标签是红移表

description                  |  Tags
John Plays Football          |  name, Verb , object

我希望输出为带有标记

的描述
John name plays verb football object

另外还有一个补充,就是有一个包含冒号的描述(:)我想在不删除的情况下将这些单词分开:

例如:

description                      |  Tags
Des:John Plays Football          |  constant,name, Verb, object

Output
Des: constant John name plays verb football object

还需要排除:结肠两侧的数字规则,以确保时间(例如:10:10)分开

我不知道我将从哪里开始

2 个答案:

答案 0 :(得分:0)

您已在Python中创建UDF以执行this

示例代码

create function f_py_conc (a srting, b srting)
 returns srting
stable
as $$
  c=a.split(" ")
  d=b.split(",")
  e =""
  for i in range(len(c))
    d=c[i]+" " +d[i]
  return e

$$ language plpythonu;

注意:Python依赖于空间,因此可能无法运行此代码,因为它可能需要进行一些更改。

答案 1 :(得分:0)

你可以使用Redshift函数实际实现这一点,特别是分割部分方法。我不确定这是否会解决:同时也可以这样做,然后回答你接下来要做的事情。 这个想法是建立一个连接字段,汇集两个字段的所有不同部分。您可以按如下方式执行此操作:

select description, tags,  
SPLIT_PART(description, ' ', 1) + ' ' + SPLIT_PART(tags, ',', 1) + ' ' +
SPLIT_PART(description, ' ', 2) + ' ' + SPLIT_PART(tags, ',', 2) + ' ' +
SPLIT_PART(description, ' ', 3) + ' ' + SPLIT_PART(tags, ',', 3)
as description_with_tag 
from table_name

详细了解此功能here