我有一个数据表(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加入表格,我以前从未这样做过。
答案 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
右侧的通配符。