有没有办法在红移中使用 CONCAT(table_name(col1, col2, col3,.....)) 连接可变数量的列?

Posted

技术标签:

【中文标题】有没有办法在红移中使用 CONCAT(table_name(col1, col2, col3,.....)) 连接可变数量的列?【英文标题】:Is there a way to concatenate variable number of columns using CONCAT(table_name(col1, col2, col3,.....)) in redshift? 【发布时间】:2019-01-17 17:53:57 【问题描述】:

我正在使用 python 脚本执行 sql 查询,该脚本传递具有可变列数的参数,并根据这些列与另一个表进行 JOIN。有没有办法连接可变数量的列? 我的查询是

DELETE FROM INPUT_SCHEMA.INPUT_TABLE A 
using TARGET_SCHEMA.TARGET_TABLE_NAME B 
where 
A.COMMON_COL1=B.COMMON_COL1 
and A.COMMON_COL2=B.COMMON_COL2 

这里我加入了 2 列,但理想情况下它是一个可变数字,将来我可能会再添加 10 列。并且列列表是通过python传递的

【问题讨论】:

这在 Python 中应该很容易。编辑问题并显示您的实际 Python 代码。 【参考方案1】:

像下面这样试试

    select col1|| ' ' || col2
    from table

或使用concat

select concat(col1, col2)
from table

【讨论】:

我的查询是 DELETE FROM INPUT_SCHEMA.INPUT_TABLE A using TARGET_SCHEMA.TARGET_TABLE_NAME B where A.COMMON_COL1=B.COMMON_COL1 and A.COMMON_COL2=B.COMMON_COL2 这里我加入了 2 列,但理想情况下它是一个可变数字,将来我可能会再添加 10 列。并且列列表是通过python传递的 @dev 。 . .这回答了您提出的问题,并且答案对我来说是正确的。如果您还有其他问题,请将其作为问题而非评论提出。 @GordonLinoff 我在问题中添加了它。谢谢

以上是关于有没有办法在红移中使用 CONCAT(table_name(col1, col2, col3,.....)) 连接可变数量的列?的主要内容,如果未能解决你的问题,请参考以下文章

在红移中作为选择插入

在红移中评估的顺序是啥

在红移中具有 DISTINCT 的 listagg

数据值“0”在红移中有无效格式错误

如何在红移中获取过去 X 周的数据?

如何获得最近 x 周数据的不同计数,但在红移中按周分组?