0

我有一个可以编译并运行的查询,但某些字段值是“#Num!”,如果单元格包含给我零的错误,我将如何让 Access 知道?我试过

IIF(Column Is Null,0,Column)但它没有用..或者我没有正确使用它?

这是我的查询

SELECT qb1.CompanyName, qb1.AssetName, qb1.Year, 
       Round(((CDbl(qb1.DatapointValue)/CDbl(qb2.MPPGas))*100),0) AS AnnualSDGAS
FROM PEBaseQuery AS qb1 
INNER JOIN PE_Field_MPPGasRevisedMarketRemoved AS qb2 
    ON (qb1.Year=qb2.Year) 
    AND (qb1.AssetName = qb2.AssetName) 
    AND (qb1.CompanyName = qb2.CompanyName)
WHERE qb1.DatapointID=2035;
4

1 回答 1

1

您可以使用IsNumeric()检查该值是否为数字。

SELECT IIF(ISNUMERIC(columnName), columnName, 0)
FROM ....

IsNumeric() 的示例:

IsNumeric (786)                 would return TRUE
IsNumeric ("Tech on the Net")   would return FALSE
IsNumeric ("234")               would return TRUE

从您的查询中,我找到了这一行

CDbl(qb1.DatapointValue) / CDbl(qb2.MPPGas)

小心使用此列qb2.MPPGas 以避免除以零错误


  • 我有一个问题要问您,您是否将数字作为文本(或字符串)存储在数据库中?
于 2012-08-30T09:27:43.600 回答