以下查询在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
)