嗨,如果我有以下内容:
表x {
num1 double precision;
num2 int;
}
现在我想找出num2 / num1并舍入到1位小数。
有没有办法在SELECT查询中执行此操作?对于双精度..我必须使用数字(4,1)或类似的东西吗?
答案 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);