答案 0 :(得分:1)
您可以将逻辑表示为:
SELECT el.value AS event_list
FROM public.staging_table st LEFT OUTER JOIN
public.event_lookup el
ON ',' || st.event_list || ',' LIKE '%,' || el.id || ',%';
我不确定这是否会有合理的表现。您确实需要更改数据结构。这种类型的操作绝对不是Redshift所适合的(实际上,Postgres更好,因为您可以轻松地将值嵌套到不同的行中)。
答案 1 :(得分:1)
根据this,您可以使用
UNNEST( STRING_TO_ARRAY(tags, ',') )
提取值,然后进行必要的联接,然后使用string_agg(expression, delimiter)
可以按照here
答案 2 :(得分:0)
您可以尝试跟踪动态查询
DECLARE @event_list nvarchar(MAX) = N'SELECT event_list FROM public.staging_table WHERE id = 3'
DECLARE @insert nvarchar(MAX) = N'
INSERT INTO public.fact_table (event_list)
SELECT value FROM public.event_lookup WHERE id in (' + @event_list +')'
EXEC sp_executesql @INSERT