这应该很简单!我有一个带有 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 上进行选择时,它工作正常。