我想使用postgresql to_number(numberString, format_mask)
。我的numberString可能包含前导零(我不知道这些零的实际长度和numberString总数)。我想修剪这些零并将值作为数字。
我已阅读此功能here,目前正在使用以下格式:
select to_number('00005469', '9999999999')
但是如果'9'的长度小于numberString的长度,那么我就无法得到正确的数字。如果不在format_mask中编写一长串'9',我怎样才能完成这项工作?
答案 0 :(得分:5)
您不需要to_number()
。只需将字符串转换为整数:
select '00005469'::integer;
或使用标准SQL:
select cast('00005469' as integer);
答案 1 :(得分:0)
为了更安全,如果您的列是否有小数,请使用
select NULLIF('00005469', '')::decimal
如果有小数,此 select '00005469'::integer;
将不起作用
答案 2 :(得分:-1)
使用这样很简单:
to_number(to_char(yournumber, '99'),'99')