SQL更改类型

时间:2011-04-26 04:00:05

标签: sql postgresql select

嗨,如果我有以下内容:

表x {

 num1 double precision;
 num2 int;

}

现在我想找出num2 / num1并舍入到1位小数。

有没有办法在SELECT查询中执行此操作?对于双精度..我必须使用数字(4,1)或类似的东西吗?

2 个答案:

答案 0 :(得分:2)

您可以使用round()

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

num1为浮点时,PostgreSQL会自动将除法升级为浮点数:

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

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

答案 1 :(得分:1)

扩展mu的答案...根据你的postgres版本,你可能需要添加一个显式的强制转换,因为round(numeric,int)存在但round(float,int)不存在:

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