postgres12 изменить таблицу с синтаксической ошибкой приведения типа - PullRequest
1 голос
/ 20 июня 2020

Я пытаюсь изменить таблицу со значениями, указанными ниже. Тип данных - строка, но я хочу изменить ее на числа.

ALTER TABLE data ALTER COLUMN value TYPE NUMERIC(7,2) USING value::numeric 

ERROR:  invalid input syntax for type numeric: "1,000.00"
SQL state: 22P02

Ответы [ 2 ]

1 голос
/ 20 июня 2020

Ну, простое преобразование не работает. Один из способов:

using replace(value, ',', '')::numeric
0 голосов
/ 20 июня 2020

Более общий подход c можно найти здесь:

https://www.postgresql.org/docs/current//functions-formatting.html Функции форматирования типа данных to_number (текст, текст) numeri c преобразовать строку в numeri c

Итак:

select to_number('1,000.00', '99G9999D99');
to_number 
-----------
   1000.00

select pg_typeof(to_number('1,000.00', '99G9999D99'));
 pg_typeof 
-----------
 numeric

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