我需要在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的情况下选择所有记录,而不会引发类型转换错误吗?
答案 0 :(得分: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';