How to create function returning numeric from string containing percent character

Поиск
Список
Период
Сортировка
От Andrus
Тема How to create function returning numeric from string containing percent character
Дата
Msg-id 7B47085A6D564BA6BCEB1509909205BF@dell2
обсуждение исходный текст
Ответы Re: How to create function returning numeric from string containing percent character  ("David G. Johnston" <david.g.johnston@gmail.com>)
Re: How to create function returning numeric from string containing percent character  (Ben Madin <ben@ausvet.com.au>)
Список pgsql-general
val function should return numeric value from string up to first non-digit character, considering first decimal point
also:

    val('1,2TEST')  should return 1.2
    val('1,2,3')  should return 1.2
    val('-1,2,3')  should return -1.2

I tried

    CREATE OR REPLACE FUNCTION public.VAL(value text)
      RETURNS numeric AS
    $BODY$
    SELECT coalesce(nullif('0'||substring(Translate($1,',','.'), '^-?[0-9]+\.?[0-9]*$'),''),'0')::numeric;
    $BODY$ language sql immutable;

but if string contains % character,

    select val('1,2%')

returns 0.

How to force it to return 1.2 ?

It should work starting from Postgres 9.0

Posted also in


https://stackoverflow.com/questions/63032072/how-to-create-function-returning-value-up-to-first-non-digit-decimal-charcater#63032126

Andrus.




В списке pgsql-general по дате отправления:

Предыдущее
От: Thomas Kellerer
Дата:
Сообщение: Re: Logical replication from 11.x to 12.x and "unique key violations"
Следующее
От: Thomas Kellerer
Дата:
Сообщение: Re: Logical replication from 11.x to 12.x and "unique key violations"