我有一个相当复杂的SQL查询-部分查询需要查找在第一个表中找到的company_ID值,以在第二个表中获取company_Name。第二张表可能有公司名称的变体,但是没关系-我只需要第一个匹配项即可。
因此,tableA看起来像这样(大约2打列和许多行)
company_ID (CHAR(12))
161012348876
561254435253
103929478273
141567643542
tableB看起来像这样
company_ID (Integer) Company_name
161012348876 Watson & Jones Ltd
161012348876 Watson and Jones
561254435253 Fictional Co. plc
103929478273 Made Up Corp.
161012348876 Watson Jones Ltd
141567643542 Thingymajig Gmbh.
该查询将返回161012348876的多行。什么是为每个匹配的company_id返回一行(即4行而不是6行)的好方法?
SELECT *, t2.company_name
FROM tableA t1
JOIN tableB t2 ON t1.company_id = cast(t2.company_id as CHAR(12))
我正在使用Teradata SQL。
任何帮助,不胜感激。
SELECT *, t2.company_name
FROM tableA t1
JOIN tableB t2 ON t1.company_id = cast(t2.company_id as CHAR(12))
GROUP BY t1.company_id
每个唯一值将返回1行 t1.company_id
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句