Обсуждение: Function testing if a string is a number ?
Hi list !
I am searching for a function that would return true if a string
is a number.
In Access I would have written IsNumeric('mystring'), but this
function does not exist in postgres.
Maybe I am doing this the wrong way actually : I want to fill an
integer field with the values from a varchard field. Some of the
values are not convertible though, so just executing :
UPDATE thetable
SET numfield=varcharfield::int4;
returns an error 'Invalid input syntax for integer "blablabla"'.
My idea was to run :
UPDATE thetable
SET numfield=varcharfield::int4
WHERE IsNumeric(varcharfield);
but maybe there is a better way to achieve this ?
Thanks for your help !
Regards
--
Arnaud
Arnaud Lesauvage <thewild@freesurf.fr> writes:
> I am searching for a function that would return true if a string
> is a number.
> In Access I would have written IsNumeric('mystring'), but this
> function does not exist in postgres.
Write your own using a pattern test, for instance
varchar ~ '^[0-9]+$'
See
http://www.postgresql.org/docs/8.1/static/functions-matching.html
regards, tom lane
Tom Lane a écrit :
> Arnaud Lesauvage <thewild@freesurf.fr> writes:
>> I am searching for a function that would return true if a string
>> is a number.
>> In Access I would have written IsNumeric('mystring'), but this
>> function does not exist in postgres.
>
> Write your own using a pattern test, for instance
> varchar ~ '^[0-9]+$'
> See
> http://www.postgresql.org/docs/8.1/static/functions-matching.html
Oh yes ! Regular expressions !
I have to think about it now !!!
Thanks a lot Tom !
Regards
--
Arnaud