这应该很简单!我有一个包含3个数字字段的大表。我想根据这3个字段计算一个值。然后只返回该值<1的记录(比方说)。麻烦的是,如果我只使用一个表达式,则计算过于复杂。 为了更容易解释,让我们假设我想要的计算是:
fieldx^2 + fieldy^2 + fieldz^2
。
所以我创建了一个子查询,将计算分成3个字段。
一个是expr1:
fieldx^2
,一个是expr2:fieldy ^ 2,expr3是fieldz ^ 2。然后我创建expr4,它是expr1 + expr2 + expr3。然后我在另一个查询中使用此子查询,它工作正常,我可以看到字段expr4已正确计算。
所以我现在尝试只选择使用
select * from subquery where expr4 <1
我收到错误“条件表达式中的数据类型不匹配”。奇怪的是,当我尝试选择expr1,2或3时,它运行正常。
答案 0 :(得分:-1)
可能有一些空值,请尝试
where nz(expr4, 1) <1