SQL 由于精度原因,结果列没有显示任何值?
SQL result column showing no value due to precision?
这是 PostgreSQL 中的一个查询:
SELECT 25/8175133
结果显示为 0,而实际值为 0.00000305805
我试过了
SELECT CAST(25/8175133 AS DECIMAL)
SELECT CAST(25/8175133 AS AS DOUBLE PRECISION)
但似乎没有任何效果。
有没有办法在我们的 SELECT 输出中显示非常低的分数值?
SELECT 25/8175133 :: decimal => 0.000003058054223704984372
SELECT 25/8175133 :: double precision => 3.0580542237049843e-06
SELECT 25/8175133 :: numeric => 0.000003058054223704984372
尝试ROUND
Select round(25/8175133::decimal, 11);
Postgres 正在尝试 return 给你你提供的相同类型。您也可以这样解决:
SELECT 25.0/8175133;
当 PostgreSQL 将两个整数值相除时,结果是一个整数。如果您想要小数位,您需要至少包含一个带小数位的操作数。
你可以这样做:
SELECT 1.0 * 25/8175133
或:
SELECT 25.0/8175133
结果:
?column?
--------
0.000003058054223704984372
这是 PostgreSQL 中的一个查询:
SELECT 25/8175133
结果显示为 0,而实际值为 0.00000305805
我试过了
SELECT CAST(25/8175133 AS DECIMAL)
SELECT CAST(25/8175133 AS AS DOUBLE PRECISION)
但似乎没有任何效果。 有没有办法在我们的 SELECT 输出中显示非常低的分数值?
SELECT 25/8175133 :: decimal => 0.000003058054223704984372
SELECT 25/8175133 :: double precision => 3.0580542237049843e-06
SELECT 25/8175133 :: numeric => 0.000003058054223704984372
尝试ROUND
Select round(25/8175133::decimal, 11);
Postgres 正在尝试 return 给你你提供的相同类型。您也可以这样解决:
SELECT 25.0/8175133;
当 PostgreSQL 将两个整数值相除时,结果是一个整数。如果您想要小数位,您需要至少包含一个带小数位的操作数。
你可以这样做:
SELECT 1.0 * 25/8175133
或:
SELECT 25.0/8175133
结果:
?column?
--------
0.000003058054223704984372