0

这应该很简单!我有一个带有 3 个数字字段的大表。我想根据这 3 个字段计算一个值。然后只返回该值 <1 的记录(比如说)。如果我只使用一个表达式,问题是计算太复杂而无法访问。为了更容易解释让我们假设我想要的计算是:

fieldx^2 + fieldy^2 + fieldz^2.

所以我创建了一个子查询,将计算分成 3 个字段。一个是 expr1: fieldx^2,一个是 expr2:fieldy^2 和 expr3 是 fieldz^2。然后我创建 expr4,即 expr1 + expr2 + expr3。然后我在另一个查询中使用这个子查询,它工作正常,我可以看到字段 expr4 已正确计算。所以我现在尝试只选择 expr4 <1 使用的记录

select * from subquery where expr4 <1

我收到错误“标准表达式中的数据类型不匹配”。奇怪的是,当我尝试在 expr1,2 或 3 上进行选择时,它工作正常。

4

1 回答 1

-1

可能有一些空值,试试

where nz(expr4, 1) <1
于 2013-10-10T12:06:50.143 回答