使用“Similar To”进行 Redshift 表连接

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

我有一个在 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 消息一个)。

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

对我来说效果很好:

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
© www.soinside.com 2019 - 2024. All rights reserved.