我会尽量清楚地看看我是否可以表达我的问题。
我有表A和B.两个都有一个名为cod(int)的字段,但在表B中,cod有一个根据鳕鱼编号变化的数字。
例:
表A. 鳕鱼= 12345
表B. 鳕鱼= 123459
OR
表A. 鳕鱼= 1234
表B. 鳕鱼= 12349
我尝试使用以下查询:
SELECT a.cod, a.qtd, a.vlr, a.status, b.desc
FROM tableA a
INNER JOIN tableB b ON SUBSTR(b.cod,1,LENGTH(a.cod))=a.cod
WHERE a.coddistrib=2544 AND a.nrolote=41862 AND a.nropedido=5
GROUP BY a.cod
问题是鳕鱼长度可以是4或5而没有数字。所以下面的两个陈述是正确的:
SUBSTR(123456,1,5)= 12345
SUBSTR(123456,1,4)= 1234
我想过像IF(LENGTH(b.cod)= LENGTH(a.cod)+1,)但我不知道如何在查询中工作。
有任何解决此问题的建议吗?
答案 0 :(得分:0)
使用:
SUBSTR(b.cod,1,substr(a.cod,1,instr(a.cod,',')))
取决于','
'.'
答案 1 :(得分:0)
试试这个:
SELECT a.cod, b.cod codb
FROM
A INNER JOIN
B ON LENGTH(a.cod) + 1 = LENGTH(b.cod) AND
SUBSTR(b.cod,1,LENGTH(a.cod)) = a.cod