MS-ACCESS查询仅匹配字符串比较中的任何N(连续)字符

时间:2012-09-12 07:17:40

标签: sql string ms-access comparison

哪个查询适合比较下面列出的两个表,但是位置(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. 位置(table1)的任何N(连续)字符和位置(table2)的任何N(连续)字符应匹配。

2 个答案:

答案 0 :(得分:0)

您可以使用LIKE进行模式匹配。下面的示例显示了table1的位置列表,该列表具有来自table2

的locaton的部分匹配

在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) & '%'

答案 1 :(得分:0)

在MSAccess中,我会创建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