微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

向 Athena 视图中的列添加条件 (SQL Presto)

如何解决向 Athena 视图中的列添加条件 (SQL Presto)

我有一个视图,其中包含我想更改/添加的列。该列已存在,但我想添加 CASE WHEN 条件。

所以我已经做了类似的事情:

CREATE VIEW testing_view AS
SELECT code,tag
FROM database.testtable;

我想做类似的事情:

ALTER(?) VIEW testing_view AS
SELECT code,tag
CASE WHEN "code" = "restricted" OR "code" = "rest" OR "code" = "rstd" 
THEN 'restricted' END "tag"

目标是使用这些条件更新标签列。

我想改变视图,但如果我必须在这种情况下创建一个新视图,我也可以这样做,但我遇到了问题。它没有添加到现有列,而是创建了一个名为 tag 的新(第二个)列,其中仅包含“受限”字样。鉴于代码,我明白为什么,但我不知道如何获得我想要的东西。

编辑:我已经有了这个表的条件的情况,因此尝试放入两个最终会出现错误

多次指定列名“标签

所以我的代码更像是:

CREATE VIEW testing_view AS
SELECT code,tag
CASE WHEN "code" = "example" AND "code" = '' THEN 'example' END "tag"
FROM database.testtable;

解决方法

我想你想要:

CREATE OR REPLACE VIEW testing_view AS
    SELECT code,(CASE WHEN code IN ('restricted','rest','rstd')
                 THEN 'restricted' ELSE tag
            END) as tag
    FROM database.testtable;

如果您的 Presto 版本支持 ALTER VIEW,那么您当然可以使用它。

您问题中的代码不正确,因此这也解决了语法问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。