0

我需要在 MS Access 2010 中对海量 (650 MB) 数据表运行查询。字段的所有数据类型都是文本,但有些字段包含所有数字,即使数据类型是文本。因此,我必须从 text 转换为 long int 以选择例如在指定字段中值大于 10 的所有记录。但是每当我这样做时,我都会收到类型不匹配错误,大概是由于比较了文本字段的数值。这是查询的 SQL,它应该从所有文本数据类型的字段中进行选择。

SELECT [Organization legal name], [Number of Group Practice members], City, State  
FROM massivetable  
WHERE Clng([Number of Group Practice members])>10  
AND State='CT';  

我试图在设计视图中将字段的数据类型转换为长整数,但操作失败并显示一条消息,指出没有足够的内存来执行操作。

谁能告诉我如何修复上面的代码,以便在值大于 10 时选择所有记录,而不会引发类型转换错误?

4

1 回答 1

3

使用 IsNumeric 函数:

SELECT [Organization legal name], [Number of Group Practice members], City, State  
FROM massivetable  
WHERE Iif(IsNumeric([Number of Group Practice members]), Clng([Number of Group Practice members]), 0) >10  
AND State='CT'; 
于 2013-11-08T02:54:07.807 回答