Postgresql to_number() 函数格式
Postgresql to_number() function format
我想使用 postgresql to_number(numberString, format_mask)
。我的 numberString 可能包含前导零(我不知道这些零的实际长度和 numberString 的总数)。我想 trim 这些零并获得数字值。
我读过这个函数 here 并且目前使用的格式是:
select to_number('00005469', '9999999999')
但是如果 '9' 的长度小于 numberString 的长度,那么我就无法得到正确的数字。如何在不在 format_mask 中写一长串“9”的情况下完成这项工作?
您不需要 to_number()
。只需将字符串转换为整数:
select '00005469'::integer;
或使用标准 SQL:
select cast('00005469' as integer);
这样使用很简单:
to_number(to_char(yournumber, '99'),'99')
如果您的列是否有小数,为了更安全,请使用
select NULLIF('00005469', '')::decimal
这个select '00005469'::integer;
如果有小数就不行
我想使用 postgresql to_number(numberString, format_mask)
。我的 numberString 可能包含前导零(我不知道这些零的实际长度和 numberString 的总数)。我想 trim 这些零并获得数字值。
我读过这个函数 here 并且目前使用的格式是:
select to_number('00005469', '9999999999')
但是如果 '9' 的长度小于 numberString 的长度,那么我就无法得到正确的数字。如何在不在 format_mask 中写一长串“9”的情况下完成这项工作?
您不需要 to_number()
。只需将字符串转换为整数:
select '00005469'::integer;
或使用标准 SQL:
select cast('00005469' as integer);
这样使用很简单:
to_number(to_char(yournumber, '99'),'99')
如果您的列是否有小数,为了更安全,请使用
select NULLIF('00005469', '')::decimal
这个select '00005469'::integer;
如果有小数就不行