使用变量红移列选择



我需要从Amazon Redshift表中选择一些列,通过使用query将column_name存储到变量中:-

WITH tmp_variables AS (
SELECT     
'Number'      AS filter_value,
'required_field2' AS colname1,
'required_field'       AS colname2    
)
SELECT DISTINCT (SELECT colname1 FROM tmp_variables), (SELECT colname2 FROM tmp_variables)
FROM table_abc where filter_column = (SELECT filter_value FROM tmp_variables);

这里的过滤条件工作良好,但如果我直接使用变量值,这不会像正常的选择查询那样返回数据。我需要在这里换什么?

这是行不通的。红移在读取任何数据之前编译查询,因此使用数据作为查询的一部分无法工作。

如果您想这样做,您可以创建一个存储过程,读取tmp_variables表,然后根据这个输入发出查询。或者您可以使用一些外部控制层来读取tmp_variables层并发出所需的查询。这可以是Lambda或bash代码或任何数量的行业工具…我推荐外部路径,因为它更灵活,节省Redshift处理大数据,而不是运行管理查询。

最新更新