Redshift приведение десятичного к десятичному - PullRequest
1 голос
/ 14 апреля 2020

Почему приведение десятичного числа к десятичному приводит к потере всех десятичных знаков? Например,

SELECT 1.5::DECIMAL

Возвращает 2

1 Ответ

1 голос
/ 14 апреля 2020

Десятичное число имеет точность (общее количество значащих цифр во всем числе) и масштаб (количество десятичных цифр).

В Redshift точность по умолчанию равна 18, , но масштаб по умолчанию - 0, а при * литье применяется автоматическое округление c, как объяснено в документации

: *1009*

Количество десятичных цифр в дробной части значения, справа от десятичной точки. [...] Масштаб по умолчанию, если не указан, равен 0.

[...]

Если масштаб входного значения, загруженного в таблицу, больше, чем шкале столбца, значение округляется до указанного масштаба.

Таким образом, вам нужно будет указать масштаб при приведении, например:

SELECT CAST(1.5 AS DECIMAL(10, 5))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...