3

我有一个数据表(AmenityData),该表的一列包含邮政部门,例如 E14 7

我还有一个包含邮政区列表的 Excel 电子表格,例如 E14

我需要从 AmenityData 表中获取所有数据,其中邮政区与邮政部门类似,例如 WHERE [PostalDistricts] + '%' LIKE [PostalSector]。

我目前使用的代码没有出现错误,只是什么都不返回,我知道应该返回很多结果:

SELECT * FROM AmenityData As a
INNER JOIN  OPENROWSET ('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=\\Bdzserver\db_creation\postaldistricts.xls;HDR=YES', 'SELECT * FROM [Sheet1$]') As b
ON b.[PostalDistricts] + '%' LIKE a.[PostalSector]

我什至不确定您是否可以使用 LIKE 加入表格,我以前从未这样做过。

4

2 回答 2

2

我已经设法自己解决了很长一段时间。

我刚刚在数据中创建了一个新列并将邮政部门添加到该列中,然后将邮政部门转换为邮政区

UPDATE [AmenityData]
SET PostalDistrict = REPLACE(PostalDistrict , ' ', '')

UPDATE [AmenityData]
SET PostalDistrict = LEFT(PostalDistrict ,LEN(PostalDistrict )-1)

完成后,我运行以下

SELECT * FROM AmenityData As a
INNER JOIN  TypesToGroups As b
ON a.ClassCode =  b.FacilityTypeID
INNER JOIN Groups As c
ON b.GroupID = c.GroupID
INNER JOIN  OPENROWSET ('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=\\Bdzserver\db_creation\postaldistricts.xls;HDR=YES', 'SELECT * FROM [Sheet1$]') As d
ON d.[PostalDistricts] = a.[PostalDistrict]

一切正常。

我仍然想知道我最初的问题是否可能,但如果有人可以提供帮助。

J。

于 2010-07-29T10:32:48.747 回答
1

您需要 . 右侧的通配符LIKE

于 2010-07-29T10:35:35.760 回答