access中如何查询"where isNumeric(col), and col > 0"

How do I query "where isNumeric(col), and col > 0" in access

我正在清理 access 数据库中的一些数据,其中应为数字且 >0 的文本属性包含非数字数据或 <0 的数字。

因为Access没有短路,我做不到

create table cleaned_up as
select * from a_mess
where isNumeric(col) and col >0

是否有解决方法

create table cleaned_up as
select * from (
  select * from a_mess
  where isNumeric(col)
)
where col > 0

您可以 Val returns 0 对于以非数字字符开头的字符串:

create table cleaned_up as
select * from a_mess
where Val(col) > 0

只关注 SELECT 部分开始...

SELECT *
FROM a_mess
WHERE
        IsNumeric(col)
    AND Val(Nz(col, 0)) > 0;

然后您可以将该查询调整为 SELECT ... INTO 语句(Access UI 称为 "make table" 查询)以将结果集保留为 table 。 ..

SELECT *
INTO cleaned_up
FROM a_mess
WHERE
        IsNumeric(col)
    AND Val(Nz(col, 0)) > 0;