我在2016年微软Access公司工作。我有一个数据表数据,其中包含了数千行数据。我有一个查找表查找,它包含已知的所有项目ID。这些表应该结合在项目ID上,这是一个字符串字段。通常,我会使用以下方法连接这些表:
SELECT * FROM [Data] LEFT JOIN [Lookup] ON [Data].[ProjectID] = [Lookup].[ProjectID]
问题是,字段是要查找的更长的字符串。作为一个例子
数据:
查找:
我尝试使用以下方法:
SELECT * FROM [Data] LEFT JOIN [Lookup] ON [Data].[ProjectID] LIKE [Lookup].[ProjectID] + '*'
唯一的问题是,查找表中有多个“类似”数据字段的条目。我需要能够加入的条目,不仅是“喜欢”,而且有最大的长度,所有的那些是“喜欢”。
我真正需要的似乎是调用一个“最类似”的函数,但在我的SQL语法知识中,它并不存在。
对于如何有效地连接这两张桌子,有什么建议吗?
发布于 2020-10-13 10:15:32
考虑:
SELECT * FROM [Data] LEFT JOIN [Lookup] ON [Data].[ProjectID] LIKE [Lookup].[ProjectID] + '*'
WHERE Len(Lookup.ProjectID) = DMax("Len(ProjectID)", "Lookup", "'" & Data.ProjectID & "' LIKE ProjectID & '*'");
或
SELECT * FROM [Data] LEFT JOIN [Lookup] ON [Data].[ProjectID] LIKE [Lookup].[ProjectID] + '*'
WHERE Len(Lookup.ProjectID) = (
SELECT Max(Len(Lookup.ProjectID)) FROM Lookup WHERE Data.ProjectID LIKE Lookup.ProjectID & "*");
https://stackoverflow.com/questions/64335564
复制相似问题