t-sql,sql表内连接电子表格

时间:2010-07-29 09:58:50

标签: sql tsql sql-like openrowset

我有一个数据表(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加入表格,我以前从未这样做过。

2 个答案:

答案 0 :(得分:2)

我已经设法在很长一段时间内解决了这个问题。

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

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]

并且一切正常。

如果有人可以提供帮助,我仍然想知道我的原始问题是否可行。

学家

答案 1 :(得分:1)

您需要LIKE右侧的通配符。