无法在相关更新中评估不支持的子查询类型

时间:2020-07-01 05:10:06

标签: sql snowflake-cloud-data-platform

以下查询在Oracle中有效,但无法将其直接移植到Snowflake。转换这样的东西的最佳方法是什么?如果有帮助的话,content_master表中大约有9k行。

update content_master schcm_target   
set schcm_target.breadcrumbhierarchy_new = (
    select      
    case       
    when regexp_instr(schcm_source.breadcrumbhierarchy,' > ',1,1) >0 then          
        schc.category_title||substr(schcm_source.breadcrumbhierarchy,regexp_instr(schcm_source.breadcrumbhierarchy,' > ',1,1))       
    when regexp_instr(schcm_source.breadcrumbhierarchy,' > ',1,1) = 0 and (schc.category_title is not null) then
        schc.category_title      
    else          
        schcm_source.breadcrumbhierarchy      
    end as breadcrumbhierarchy_new      
    from content_master schcm_source      
    inner join categories schc      
    on schc.category_id=schcm_source.category_id      
    where schc.category_title||substr(schcm_source.breadcrumbhierarchy,regexp_instr(schcm_source.breadcrumbhierarchy,' > ',1,1)) is not null      
          and schcm_source.hub_content_key = schcm_target.hub_content_key  
)  
where exists (      
    select      
    case       
    when regexp_instr(schcm_source.breadcrumbhierarchy,' > ',1,1) >0 then          
        schc.category_title||substr(schcm_source.breadcrumbhierarchy,regexp_instr(schcm_source.breadcrumbhierarchy,' > ',1,1))       
    when regexp_instr(schcm_source.breadcrumbhierarchy,' > ',1,1) = 0 and ( schc.category_title is not null) then          
        schc.category_title      
    else          
        schcm_source.breadcrumbhierarchy      
    end as breadcrumbhierarchy_new      
    from content_master schcm_source      
    inner join categories schc      
    on schc.category_id=schcm_source.category_id      
    where schc.category_title||substr(schcm_source.breadcrumbhierarchy,regexp_instr(schcm_source.breadcrumbhierarchy,' > ',1,1)) is not null      
    and schcm_source.hub_content_key = schcm_target.hub_content_key  
)

0 个答案:

没有答案
相关问题