比较去除空格

Comparing remove white spaces

我有浮点值可以从中删除白色 space。

下面是例子

In SQL Server: In SQL Server 我使用了以下脚本。

DECLARE @f1 FLOAT = 74.3658319091568;

SELECT REPLACE(@f1,CHAR(160),'');

--输出

74.3658

PostgreSQL:在 postgresql 中我使用了以下脚本。

do
$$
DECLARE 
    v_f1 float = '74.3658319091568';
    v_f3 text;

BEGIN

    SELECT regexp_replace(v_f1::varchar, '\s+$', '') INTO v_f3;
    Raise info '%',v_f3;

END;
$$   

--输出

INFO:  74.3658319091568 

我进入 SQL 服务器时没有得到结果。

您的 Postgres floatreal 的同义词,它有 6 digits precision. In SQL Server a default float has 15 digits precision.

您可以使用同样具有 15 位精度的 Postgres double precision。没有 SQL 具有 6 位精度的服务器类型。

注意:将 float 转换为文本类型时,通常不会出现任何空格。所以替换空格是没有用的(但也是无害的。)

注意 2:在 SQL 服务器中,当使用 fixed-length char 时,尾随空格将被删除。所以 REPLACE(@f1,CHAR(160),'') 用空字符串替换空字符串。

你可以这样试试

do
$$
DECLARE 
    v_f1 float8 = '74.3658319091568';
    v_f3 text;

BEGIN

    SELECT to_char( v_f1, 'FM999999.0000') INTO v_f3;
    Raise info '%',v_f3;

END;
$$

FM(prefix) -填充模式(抑制前导零和填充空白)

使用data type formatting