我创建了一个包含简单查询的视图
create or replace view temp(EFTSLOAD, UOC, CODE) as
select eftsload, uoc,code from subjects where
cast (eftsload as numeric(5,3)) != cast((uoc/48) as numeric(5,3));
但是我的查询从temp中选择*;给了我像
这样的行 eftsload | uoc | code
0.125 6 ECONXXXX
0.5 24 HISTXXXX
条件说eftsload!= uoc / 48但我得到的行是efts = 0.125和uoc = 6,其中违规为6/48 = 0.125和许多其他关系eftsload!= uoc / 48的情况显然不是真的
为什么会这样?
答案 0 :(得分:2)
一种可能性是将数量uoc/48
视为整数除法,然后将截断的商转换为数字浮点。但是你真的想在这里做浮点除法。
试试这个:
select eftsload, uoc, code
from subjects
where cast(eftsload as numeric(5,3)) != uoc / 48::numeric(5,3)