在MS Access中,将字符串数据类型转换为整数的SQL查询

4

我正在尝试在Access中编写查询,以提取在文本数据库中的结果。实际上,我在Membership表中有一个数据类型为TEXT的RECEIPTNO列,并且我想从RECEIPTNO列中提取所有结果,其中RECEIPTNO介于1和10之间。

我尝试了以下代码:

SELECT Cint(RECEIPTNO) FROM MEMBERSHIP where Cint(RECEIPTNO) BETWEEN 1 AND 10

结果是:溢出, 有什么想法吗?


你是否将Jet/ACE/Access的整数数据类型与SQL Server的整数混淆了?相应的Jet/ACE/Access数据类型是长整型,因此CLng()可能有效。但@Remou的建议使用Val()可以完全避免这个问题。 - David-W-Fenton
3个回答

5

您想要:

SELECT RECEIPTNO FROM MEMBERSHIP
WHERE Val(RECEIPTNO) BETWEEN 1 AND 10

3

哦,我找到了答案,并且它正在运行。

并且查询类似于:

SELECT Cint(RECEIPTNO) FROM MEMBERSHIP where RECEIPTNO BETWEEN 1 AND 10

抱歉,上述查询不起作用,因为仅当 RECEIPTNO 列的数据类型为数字时,上述查询才能正常工作。但是我想要在 RECEIPTNO 数据类型为文本时使用查询。请帮忙。 - amol kadam
CInt 不适用于字符串,只适用于值。请使用 Val - 请参阅 Fionnuala 的答案! - Peter Albert

2
这将给你想要的内容。ss
SELECT RECEIPTNO FROM MEMBERSHIP
WHERE Val(RECEIPTNO & "") BETWEEN 1 AND 10

其他使用 Val(RECEIPTNO) 的人只会在它可以工作的地方尽力而为,因为系统不认识 RECEIPTNO 作为文本,所以你传递数字而不是字符串对它来说很有趣。然而,为了让系统相信这个格式实际上是一个数字,请将其与一个空字符串连接起来,我已经做到了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接