如何使用Redshift SQL在字符串中每n个字符后插入一个字符

时间:2019-02-07 19:10:45

标签: sql amazon-web-services amazon-redshift

如何使用Redshift SQL在字符串中每n个字符(例如100个字符)后插入一个字符(例如星号)

1 个答案:

答案 0 :(得分:1)

这不是SQL的正常功能。

但是,您可以Create a Scalar Python UDF

CREATE FUNCTION f_insert_char (s text, c text, gap int)
  RETURNS TEXT
STABLE
AS $$

  return c.join(s[i:i+gap] for i in range(0, len(s), gap))

$$ LANGUAGE plpythonu;

用法:

SELECT f_insert_char('The quick brown fox jumps over the foo', '*', 5);

输出:

The qu*ick br*own fo*x jump*s over* the f*oo

在如下查询中使用它:

SELECT
  f_insert_char(column_name, '*', 5)
FROM table