我有一个在 Redshift 中运行的查询:
Select A.*
From TableA A
join TableB B
on A.Col like B.Pattern
Pattern
中的TableB
列看起来像:
('%foo%', '%bar%', ...)
TableB
有数百条模式规则,并在多个位置使用,以便更轻松、更清晰地维护一张字符串规则表。
有没有办法在Redshift中的
similar to
条件下使用like
代替join
? IE。
选择A.*
来自表A A
加入表 B B
在 A.Col 上类似于 B.Pattern
当我尝试上述查询时,出现此错误:
Redshift 表不支持指定的类型或函数(每个 INFO 消息一个)。
对我来说效果很好:
with cte1 AS (
select 1 AS id, 'ABC'::varchar as col
union
select 2 AS id, 'BDE'::varchar AS col
), cte2 AS (
select '%BC%'::varchar AS patt
)
select a.*
from cte1 a
inner join cte2 b
ON a.col similar to b.patt