sql - MS Access - 如果仅使用 LEFT 函数,则联接值相似的表?

标签 sql ms-access

如果两个表是这样的,你能连接它们吗?

表1

Key_ID    Item
1234.P    User 123
4324.P    User 234
5432.P    User 345

表2

Key_ID    Item
1234.J    Computer ABC
4324.J    Computer DEF
5432.J    Computer GHI

如果我可以消除每个 Key_ID 的最后 2 个字符,那么这些值将是相同的。沿着这些思路的东西有效吗?

FROM [Table 1]
    INNER JOIN [Table 2]
    ON Left(([Table 1].Key_ID), Len([Table 1].Key_ID) - 2) =  
        Left(([Table 2].Key_ID), Len([Table 2].Key_ID) - 2)

Key_ID 中句点左侧的值可能包含字母字符,并且可能多于或少于 4 个字符。

最佳答案

我刚刚在 Access 2007 中尝试过此操作:

--假设所有 KEY_ID 值都是 ####.A 的惰性方法

SELECT *
FROM Table1 AS T 
INNER JOIN Table2 AS T2 ON LEFT(T.Key_ID,4) = LEFT(T2.Key_ID,4);

--如果你想加入句号左边的所有内容

SELECT *
FROM Table1 AS T 
INNER JOIN Table2 AS T2 ON Mid(T.Key_ID,1,Instr(1,T.Key_ID,".",1)-1) = Mid(T2.Key_ID,1,Instr(1,T2.Key_ID,".",1)-1);

关于sql - MS Access - 如果仅使用 LEFT 函数,则联接值相似的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17046820/

相关文章:

c# - 在 Get-WmiObject Powershell 查询上选择前 5 个或限制为 5 个条目

sql - SQL 查询的 Spring Data R2DBC 参数条件绑定(bind)

c# - 查询以 int 数据类型对 Access 数据库中的字段求和

sql - Access 链接到 SQL Server

ms-access - Access 2007 - Left Join 查询返回 #Error 而不是 Null

ms-access - 我可以隐藏 slider 的工具提示文本吗?

sql - SQLite 是否支持 SCOPE_IDENTITY?

mysql获取运行差异

php - 在 XAMPP 上安装 PEAR

c# - 删除和更新查询在 ADO.NET 中不起作用