Функция TO_NUMBER внутри AVG не работает - PullRequest
0 голосов
/ 24 сентября 2019

У меня проблемы с функцией TO_NUMBER ORACLE.

Запрос

SELECT TO_NUMBER(varchar2_column)
FROM TABLE@ANOTHER_DB;

работает, но если я поставлю TO_NUMBER внутри AVG, ORACLE вернет следующую ошибку:

ORA-01722: неверный номер ORA-02063: предыдущая строка из ANOTHER_DB Позиция: 0

Запрос следующий:

SELECT AVG(TO_NUMBER(varchar2_column))
FROM TABLE@ANOTHER_DB;

Может ли кто-нибудь помочь мне?Заранее спасибо

1 Ответ

1 голос
/ 24 сентября 2019

Вы можете использовать следующий запрос, чтобы получить маску рабочего формата для ваших данных:

SELECT AVG(TO_NUMBER(varchar2_column, 'FM'||REGEXP_REPLACE(varchar2_column,'\d','0'))) 
  FROM TABLE@ANOTHER_DB;

Это создаст маску форматирования, заменяющую все числовые символы на 0, которая должна работать со всеми вашими данными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...