如何在 athena 视图定义中添加条件以修改列值?

问题描述 投票:0回答:1

我在 s3 中有一个数据仓库,具有铜牌、银牌和金牌层,其中数据以增量格式保存。我需要从银表创建金表,并决定最好的方法是在 athena 中创建一个视图。该视图需要包含几个转换,其中一列的值根据另一列的值进行修改,还需要一个转换,其中根据另一列的正则表达式匹配创建和填充新列。

我已经能够在 pyspark 中执行此操作,但无法将其移动到 athena 中的 sql 语句。对于第一次转变,我尝试了这个:

CREATE OR REPLACE VIEW "test_view" AS 
SELECT a.* 
set property_name = (CASE 
                      WHEN domain = 'Some.com' 
                        THEN 'properties/4'
                    END);
FROM "silver_d"."silver_table" a

但是出现以下错误: 只允许一条sql语句。

有谁知道如何基于表创建视图并应用这些转换?

任何帮助将不胜感激

sql amazon-web-services amazon-athena
1个回答
0
投票

case 语句中的分号是引发“仅允许一个 sql 语句”错误的原因。

删除分号,删除“设置”并调整/重新格式化您的查询,如下所示:

CREATE OR REPLACE VIEW "test_view" AS
SELECT a.*,
    CASE
        WHEN domain = 'Some.com' THEN 'properties/4'
    END as property_name
FROM "silver_d"."silver_table" a
© www.soinside.com 2019 - 2024. All rights reserved.