Преобразование в десятичное с помощью оператора sql

У меня есть десятичные числа, как в таблице ниже, я пытаюсь преобразовать их в десятичные, потому что, когда я их выбираю, они получаются целыми, например, в строке 1, если я выбираю 0,8 или 2,86, это даст мне 0 или 2 соответственно

Преобразование в десятичное с помощью оператора sql

Я использую следующее утверждение

select ELERENVPR, ELEDCSFPM from db-name 

я пытался преобразовать его

select cast(ELERENVPR, decimal), cast(ELEDCSFPM,decimal) from db-name 

Я не уверен, работает ли он, потому что теперь он переименовывает таблицу в 00001 и 00002, как на картинке ниже

Преобразование в десятичное с помощью оператора sql

Отметьте используемую базу данных.

Gordon Linoff 16.05.2018 12:29

Всякий раз, когда вы помещаете столбец в любой функцию (включая CAST), он больше не является исходным столбцом, и поэтому ты необходимо присвоить результату выражения имя столбца ... SELECT cast(ELERENVPR, decimal(10,2)) AS newELERENVPR ...

MatBailie 16.05.2018 12:32
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
2
22
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

decimal без параметров масштаба или точности имеет значения по умолчанию, которые могут иметь нулевую точность.

Вы должны четко заявить о том, чего хотите. Я бы порекомендовал что-то вроде decimal(10, 2) (8 цифр до десятичной точки, 2 после). Что-то вроде этого:

select cast(ELERENVPR, decimal(10, 2)) as ELERENVPR,
       cast(ELEDCSFPM, decimal(10, 2)) as ELEDCSFPM
from db-name ;

as переименовывает столбцы.

Другие вопросы по теме