0

什么查询适合比较下面指定的两个表,但是 location(table1) 中只有部分字符串与 Location(table2) 匹配。

Location(table1)    Location(table2)
india- north        USxcs
India-west          Indiaasd
India- east         Indiaavvds
India- south        Africassdcasv
US- north           Africavasvdsa
us-west             UKsacvavsdv
uk- east            Indiacascsa
uk- south           UScssca
Africa-middle       Indiacsasca
Africa-south        Africaccc
Africa-east         UKcac
  1. 只有位置(table1)的第一个两个字符和位置(table2)的第一个两个字符应该匹配。请帮忙

  2. location(table1) 的任何 N(连续)个字符和 location(table2)的任何 N(连续)个字符都应该匹配。

4

2 回答 2

0

您可以LIKE用于模式匹配。下面的示例显示了 table1 的位置列表,该列表与 table2 的位置部分匹配

在 MSSQL 中:

SELECT *
FROM location_table2 a, location_table1 b
WHERE b.location LIKE a.Location + '%'

在 MySQL 中:

SELECT *
FROM location_table2 a, location_table1 b
WHERE b.location LIKE CONCAT(a.Location, '%')

在 MSAccess 中:

SELECT *
FROM location_table2 a, location_table1 b
WHERE a.Location LIKE LEFT(b.Location, InStr(b.Location, '-') -1) & '%'
于 2012-09-12T07:24:08.183 回答
0

在 MSAccess 中,我将创建 2 个新查询,引入一个新列,每个表中只有位置字段的前 2 个字母,然后添加第三个查询加入这 2 个。

qry_table1:

select location as location1, left(location,2) as loc1 from table1

qry_table2:

select location as location2, left(location,2) as loc2 from table2

qry_join:

select location1, location2 
from qry_table1 inner join 
qry_table2 on 
qry_table1.loc1 = qry_table2.loc2
于 2012-09-12T13:59:32.923 回答