如何在 Redshift 中拆分字符串并进行迭代
Posted
技术标签:
【中文标题】如何在 Redshift 中拆分字符串并进行迭代【英文标题】:How to Split a String and Iterate in Redshift 【发布时间】:2020-11-19 20:20:27 【问题描述】:我是 Redshift 的新手,我偶然发现了一个场景,在该场景中,我的程序想要拆分一个字符串并对其进行迭代并对其进行一些操作。我知道 redshift 不支持数组,我想知道如何在 redshift 中实现这一点
CREATE OR REPLACE PROCEDURE example(value IN varchar) AS $$
BEGIN
--value = 'FIRST, SECOND, THIRD' -> I want to split the string using a comma and iterate through one by one and do some manipulations.
END;
$$ LANGUAGE plpgsql;
有人可以指导我吗?
提前致谢,
【问题讨论】:
John 的回答是正确的,但由于您是 Redshift 的新手,我会给出建议。如果您需要操作的数据很大,请确保您需要一个存储过程并且无法使用直接 SQL 执行相同的操作。您会看到存储过程提供了极大的灵活性,在大数据上调用它们可能会很慢。因此,如果您可以在没有存储过程的情况下度过难关,那么在 Redshift 中您的大数据执行时间会更好。 【参考方案1】:您可以创建一个递增值循环,并调用SPLIT_PART()
,传入循环值。
如果部分大于字符串部分的数量,
SPLIT_PART
返回一个空字符串。
因此,如果返回空字符串,您将停止循环。
【讨论】:
以上是关于如何在 Redshift 中拆分字符串并进行迭代的主要内容,如果未能解决你的问题,请参考以下文章
如何将拆分的 gzip 文件中的数据加载到 redshift 中?