Redshift 创建一个带有静态字符串错误的新列

Posted

技术标签:

【中文标题】Redshift 创建一个带有静态字符串错误的新列【英文标题】:Redshift creating a new column with static string error 【发布时间】:2021-05-06 18:05:57 【问题描述】:

我的查询是如何实现的,我使用像 SELECT 'ChickenMongoose' as animal 这样的语句来创建一个带有静态单词“ChickenMongoose”的新列但是我从 redshift Value too long for type character varying(7) 收到这个错误我如何使用静态字符串创建一个新列能适应这个长度吗?

更多上下文:

UNION ALL
(SELECT 'ChickenMongoose' as animal ,
       SUM(COALESCE(friends.touches, 0)) AS touches
       FROM
        basic t
       INNER JOIN
        mock_friends friends ON friends.initiative_id = t.initiative_id
       WHERE
       'ChickenMongoose' in ('ChickenMongoose', 'potato')

基本上我的查询与联合 ALLS 连接,顶部有一个 select 语句,它不允许我将 ChickenMongoose 分配为动物列下的静态名称

谢谢

【问题讨论】:

A select 不应产生该错误。您是否将其存储在表格中? 抱歉让我提供更多上下文 【参考方案1】:

在 Redshift 中,尝试替换最后一行'ChickenMongoose' in ('ChickenMongoose', 'potato')animal in ('ChickenMongoose', 'potato')

因为它会将其视为非整数字符常量

【讨论】:

以上是关于Redshift 创建一个带有静态字符串错误的新列的主要内容,如果未能解决你的问题,请参考以下文章

在配置单元中添加具有恒定值的新列

如何将 CSV 导出复制到添加了新列的 Redshift 表中?

使用字符值填充数据框中的新列的逻辑操作

在 IMPALA/HIVE 中添加带有 SELECT 的新列后,旧表数据变为 NULL

如何用我的.apply()函数中的新列解决一个讨厌的语法错误

创建一个包含grepped字符串的新列