显示带有前导符号的浮点列

Display float column with leading sign

我正在使用 PHP 和 PostgreSQL。我有以下查询:

SELECT ra, de, concat(ra, de) AS com, count(*) OVER() AS total_rows
FROM mdust
LIMIT :pagesize OFFSET :starts

rade 是浮点数,其中 de 可以是正数或负数,但是,de 不会 return + 与浮动关联。但是它确实 return - 负号。我想要的是 concat(ra, de) 中的 de 列到 return 返回正号或负号。

我正在查看 PostgreSQL 的 this 文档,它提供了 to_char(1, 'S9') 这正是我想要的,但它只适用于整数。我找不到这样的 floats 函数。

to_char() 也适用于 float。您只需定义所需的输出格式。简单模式 S9 会截断小数位并且对于大于 9 的数字会失败。

test=> SELECT to_char(float '0.123'  , 'FMS9999990.099999')
test->      , to_char(float '123'    , 'FMS9999990.099999')
test->      , to_char(float '123.123', 'FMS9999990.099999');
 to_char | to_char | to_char  
---------+---------+----------
 +0.123  | +123.0  | +123.123
(1 row)

添加的 FM 修饰符代表“填充模式”并抑制无关紧要的尾随零(除非被 0 符号而不是 9 强制)和填充空白。

在句点前后添加任意多的 9 以允许任意多的数字。

您几乎可以随心所欲地定制所需的输出格式。 Details in the manual here.

旁白:有比LIMIT :pagesize OFFSET :starts更有效的分页解决方案: