我有两个独立的数据表。
这是Table1
:
Customer Name Address 1 City State Zip
ACME COMPANY 1 Street Road Maspeth NY 11777
这是Table2
:
Customer Active Account New Contact
ACME Y John Smith
我正在使用JOIN
运行查询,其中仅包含两个表中的联接字段相等的行。
我从[{1}}加入Customer Name
,从Table1
加入Customer
。显然没有比赛。我要做的是显示每个表中前4个字符匹配的结果,以便得到结果或匹配。这可以使用Table2
或LIKE
吗?
答案 0 :(得分:2)
似乎这应该有效:
Select *
From Table1, Table2
Where Table1.CustomerName Like Cat('%',Trim(Table2.CustomerName),'%')
答案 1 :(得分:2)
可能是这样,但这可能取决于您使用的数据库。例如,在Microsoft SQL中,它可以使用这样的东西:
SELECT *
FROM [Table1] INNER JOIN [Table2]
ON LEFT([Table1].[Customer Name],4) = LEFT([Table2].[Customer],4)
如果使用其他RDBMS,语法可能会有所不同。你在尝试什么?
答案 2 :(得分:1)
是的,这是可能的。 但我怀疑,表2中的每个名字只有4个字母,所以这里是一个解决方案,其中table2中的名称是table1中名称的开头。
使用%
来控制字符串。它是"任何或不需要的占位符/通配符"。
SELECT
*
FROM
Table1
INNER JOIN Table2 ON Table1.CustomerName LIKE CONCAT(Table2.Customer, '%');
串联字符串在DBMS之间可能会有所不同。
答案 3 :(得分:0)
如果您只想匹配前四个字符,可以使用以下字符:
SELECT --your columns
FROM Table1 T1
JOIN Table T2
ON
SUBSTRING ( T1.CustomerName ,1, 4) = SUBSTRING ( T2.Customer ,1, 4)