2014-04-25 41 views
4

基本上,我试图在进行连接时转换表字段。字段中的数字以0009897896,000239472938,00032423等等开头。MySQL - 基于CONVERT加入一列到NUMERIC

我想做一个基于连接的转换,因此当我查询列时,它将显示没有前导0的数字,因此它们将显示为9897896,239472938,32423等等。

有人可以帮我实现吗?我一直停留在这个问题上一段时间:(

这里就是我有这么远......从不同的数据库连接:

SELECT l.loannumber AS '1 Loan number', 
     fl.loan_num AS '2 Loan number', 
     CASE 
      WHEN loannumber<>fl.loan_num THEN "YES" 
      ELSE "NO" 
     END AS "issue?" 
FROM loan l 
LEFT JOIN cware_cms.file_lst fl ON (CONVERT(SUBSTRING_INDEX(l.LoanNumber, '-', -1), UNSIGNED INTEGER)) = (CONVERT(SUBSTRING_INDEX(fl.loan_num, '-', -1),UNSIGNED INTEGER)) 
LEFT JOIN cware_cms.case_lst cl ON cl.case_id = 
    (SELECT MAX(cware_cms.file_case.case_id)) 
FROM cware_cms.file_case 
INNER JOIN cware_cms.case_lst ON cware_cms.file_case.case_id = cware_cms.case_lst.case_id 
+2

什么,你必须与此查询的问题 –

+0

你可能会得到与数据增长的性能问题,它不推荐使用任何数据操作'JOIN'条件 – Uriil

+0

当我跑的?。查询,它将返回1和2的贷款编号eading 0s。 – user3571153

回答

1

我想你要修剪前导零将这样的伎俩:

LEFT JOIN cware_cms.file_lst fl ON TRIM(LEADING '0' FROM l.loannumber) = TRIM(LEADING '0' FROM fl.loan_num) 
+0

当我运行查询时,这仍然返回前导0。 – user3571153

+0

也在SELECT子句上使用TRIM函数。选择修剪(从fl.loan_num引导'0')... – MinhD