[英]MySQL SUBSTR function with Join and IF conditions
我会尽量保持清楚,看看我是否能表达我的问题。
我有表A和B。它们都有一个名为cod(int)的字段,但是在表B中,cod有一个数字,该数字根据cod编号而变化。
范例:
表A编码= 12345
表B cod = 123459
要么
表A cod = 1234
表B cod = 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,)的方法,但是我不知道如何在查询中使用它。
有什么解决这个问题的建议吗?
采用:
SUBSTR(b.cod,1,substr(a.cod,1,instr(a.cod,',')))
根据数字符号,将','
更改为'.'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.