sql—是否有一个函数可以将id字段拆分为八位字节,并基于八位字节检查字段值(ms access)?

4bbkushb  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(310)

我试图细分id字段(例如aaabbb123为aaa bbb和123),并与表中的另一个字段进行比较,以检查它是否具有所需的值(如果第一个八位字节是aaa,那么另一个字段应该有值1,如果第一个八位字节是zzz,那么另一个字段应该有值2)如果值不匹配,我将尝试返回这些记录。
这就是我迄今为止所尝试的。

SELECT LEFT([SUB_ID], 3) AS TrimmedColumn
FROM Table1

我可以用这个得到第一个八位字节,但我不知道如何与另一个字段进行比较,得到与期望值不匹配的记录。
详细问题描述:
假设第一个八位字节是aaa,那么字段“a”应该有值1,如果没有值1,我需要返回这些记录,以此类推。
类似地,如果假设第一个八位字节是zzz,那么字段“a”应该有值2,如果没有,我需要返回这些记录,依此类推。
我还想对第二个八位字节和一个不同的字段“b”执行相同的操作,以检查它是否具有基于八位字节的所需值。
这是一个示例表
我的方向对吗?有没有一个功能可以做到这一点?我应该如何优化这个问题的解决方案?

omqzjyyz

omqzjyyz1#

生成提取所需部分并连接到Map表的查询。若数据字段和Map表中的值不匹配,则返回记录。我想你需要做3个查询。下面是一个例子:

SELECT Map.*, T1.* FROM Map INNER JOIN (
   SELECT Table1.ID, Table1.A, Left([SUB_ID],3) AS T FROM Table1) AS T1 
ON T1.T = Map.Oct 
WHERE T1.A <> Map.V;

使用mid()函数解析其他部分。

相关问题