PostgreSQL查询无法正常工作

时间:2017-05-02 07:39:10

标签: sql postgresql

我创建了一个包含简单查询的视图

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的情况显然不是真的

为什么会这样?

1 个答案:

答案 0 :(得分:2)

一种可能性是将数量uoc/48视为整数除法,然后将截断的商转换为数字浮点。但是你真的想在这里做浮点除法。

试试这个:

select eftsload, uoc, code
from subjects
where cast(eftsload as numeric(5,3)) != uoc / 48::numeric(5,3)