2011-04-26 43 views
1

嗨,如果我有以下几点:SQL改变类型

表X {

num1 double precision; 
num2 int; 

}

,现在我想找出NUM2/NUM1和圆形至小数点后1位。

有没有办法在SELECT查询中做到这一点?为双精度..我必须使用数字(4,1)或类似的东西?

回答

2

您可以使用round()

SELECT ROUND(num2/num1, 1) FROM x; 

PostgreSQL将划分自动升级到浮点时num1是浮点:

> select 3/3.145927; 
     ?column?   
------------------------ 
0.95361399040727899916 
(1 row) 

和:

> select round(3/3.145927, 1); 
round 
------- 
    1.0 
(1 row) 
1

拓展上万亩的回答...根据你的postgres版本,因为round(numeric,int)存在而round(float,int)不存在:

select round(num1::numeric/num2::numeric, 1);