【发布时间】:2019-06-25 14:01:58
【问题描述】:
我正在尝试在 AWS Redshift SQL 中编写一个存储过程,我的一个参数需要有一个整数列表(将在 WHERE 子句中使用“IN(0,100,200,...)”)。我将如何在过程的标题中写入输入参数,以便可以(如果有的话?)
我尝试将它们作为 VARCHAR“整数列表”类型的东西传递,但不确定如何将其解析回整数。
更新:我找到了一种方法来解析字符串并使用 SPLIT_PART 函数循环遍历它并将所有这些存储到一个表中。然后只需使用带有 IN() 调用的 SELECT * FROM 表
【问题讨论】:
-
如果您认为这会对其他读者有所帮助,请随时添加您自己问题的答案。
-
主要问题是如何将整数放入调用中。例如,它是一个字符串还是真的是一个整数列表?使用 Python 将在存储过程本身中提供更大的灵活性——从逗号分隔的字符串中提取整数将是微不足道的。
-
在调用中获取整数的方法是使用逗号分隔的字符串完成的。一开始我只是不完全确定如何存储它们,因为我没有考虑数据库的思维方式。一旦我意识到我可以创建一个临时表,困难的部分就是试图找到一个简单的函数来计算循环的次数。我会在早上的答案中发布我的解决方案。
标签: stored-procedures parameters amazon-redshift