2016-05-18 4 views
0

Я хочу использовать postgresql to_number(numberString, format_mask). Мое числоString может содержать начальные нули (я не знаю фактической длины этих нулей и числа в целом). Я хочу обрезать эти нули и получить значение как число.Postgresql to_number() function format

Я читал об этой функции here и в настоящее время, используя формат:

select to_number('00005469', '9999999999') 

Но если длина «9-х меньше длины numberString, то я не могу получить правильный номер. Как я могу сделать эту работу без написания длинного списка «9» в format_mask?

ответ

2

Для этого вам не нужно to_number(). Просто бросить строку в целое число:

select '00005469'::integer; 

или с использованием стандартных SQL:

select cast('00005469' as integer); 
-1

использовать, как это просто:

to_number(to_char(yournumber, '99'),'99')

+0

только код ответа не рекомендуется, потому что они не объясняйте, как они решают проблему. Пожалуйста, обновите свой ответ, чтобы объяснить, как это улучшается на принятом и подтвержденном ответе, который уже задан. Пожалуйста, просмотрите [Как написать хороший ответ] (https://stackoverflow.com/help/how-to-answer). – FluffyKitten