比较删除空格

时间:2015-12-29 11:19:35

标签: postgresql postgresql-9.3

我有浮点值来删除空格。

以下是示例。

在SQL Server中:在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 Server时,我没有得到结果。

2 个答案:

答案 0 :(得分:1)

您的Postgres floatreal的同义词,其6 digits precision。在SQL Server中,默认float具有15 digits precision

你可以使用Postgres double precision,它也有15位精度。没有具有6位精度的SQL Server类型。

注意:将float转换为文本类型时,通常不会获得任何空格。因此,替换空格是没用的(但也无害。)

注意2:在SQL Server中,使用固定长度char时,将删除尾随空格。所以REPLACE(@f1,CHAR(160),'')用空字符串替换空字符串。

答案 1 :(得分:1)

你可以试试这种方式

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前缀) - 填充模式(抑制前导零和填充空白)

使用data type formatting