【问题标题】:Redshift column selection using variable使用变量的 Redshift 列选择
【发布时间】:2021-10-07 10:48:11
【问题描述】:

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

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);

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

【问题讨论】:

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


    【解决方案1】:

    这行不通(如所写)。 Redshift 在读取任何数据之前编译查询,因此无法将数据用作查询的一部分。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-02-04
      • 2018-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-23
      相关资源
      最近更新 更多