在查询中将两个数字连接在一起时,如何保持前导零?

时间:2014-08-15 16:00:41

标签: sql ms-access ms-access-2007

问题

如何在Access查询中将两个数字连接在一起时,如何保持前导零?

FileYear | FileIteration
------------------------ 
14       | 0001
14       | 0002
14       | 0003
14       | 0004

FileIteration有" 0000"格式,但仍然存储为整数)

查询

SELECT MAX(FileYear & FileIteration)
FROM FileNumber
WHERE FileYear=Format(Date(),"yy");

当前(错误)输出

  

144

它不会保持前导零。

所需的输出

  

140004

我希望它保持领先的零。

4 个答案:

答案 0 :(得分:2)

使用Format函数是我认为“正确”的方法,尽管在这种情况下有很多方法可以达到你想要的效果。

Format()的输出将是一个字符串

SELECT MAX(FileYear & Format(FileIteration,"0000"))
FROM FileNumber
WHERE FileYear=Format(Date(),"yy");

答案 1 :(得分:1)

如果它始终是一个4位数字,您可以这样做:

Fileyear * 10000 + FileIteration

如果位数是动态的,我们假设它位于NoOfDigits列中:

Fileyear * 10 ^ NoOfDigits + FileIteration

答案 2 :(得分:1)

一个可能的查询的Access SQL语句,假设4位FileIteration是:

SELECT Max(([FileYear]*1000)+[FileIteration]) AS Answer
FROM FileNumber
WHERE ((([FileYear])=Format(Date(),"yy")));

答案 3 :(得分:-1)

在连接之前将它们转换为字符串:

CStr(Fileyear) & CStr(FileIteration)