如何解决向 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 举报,一经查实,本站将立刻删除。