比较去除空格
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 float
是 real
的同义词,它有 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) -填充模式(抑制前导零和填充空白)
我有浮点值可以从中删除白色 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 float
是 real
的同义词,它有 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) -填充模式(抑制前导零和填充空白)