【发布时间】:2023-03-18 20:13:01
【问题描述】:
我有两张桌子。表 A 包含数千个葡萄酒类型为空的产品名称。表 B 包含数百种葡萄酒品种及其对应的葡萄酒类型。
我需要编写一个 Teradata SQL 查询,该查询将在表 A 产品名称中查找子字符串,并在表 B 品种字段中找到该子字符串,然后返回表 B 葡萄酒类型 - 以填充缺失的葡萄酒类型数据表 A。
如果您查看表 A 中的第一行,您会看到表 A.Wine Type 字段中应包含的内容的示例。产品名称 Brilliant Barossa Shiraz Six 包含子字符串“Shiraz”。这个子串存在于Table B Variety 字段中,我需要代码将对应的Table B.Wine Type 返回到Table A.Wine Type 即RED-WINE。
我尝试了以下方法只是为了获得一个基本的连接作为起点,但它不起作用。有什么想法吗?
sel *
from TABLE_A a
inner join TABLE_B b
on a.product_name like '%' + b.variety + '%'
【问题讨论】:
-
teradata 有没有在线编译器?我应该测试代码。
-
请将示例数据以文本形式发布,以便其他人可以轻松使用。
-
Teradata 中的连接运算符是 ||,而不是 +。请记住,这可能会产生非常糟糕的性能。
-
请注意,如图所示,您可能会有多个匹配项。例如,匹配
LIKE '%SHIRAZ MATARO%'的任何内容也将匹配LIKE '%SHIRAZ%'。并且总会有匹配还是需要外部连接?
标签: sql teradata teradata-sql-assistant