DB2 SQL - настроить десятичные точки на основе значения - PullRequest
0 голосов
/ 15 марта 2019

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

----------------------------------------------
-fieldName----fieldValue----result after mask-
----------------------------------------------
 505          2             5.05
 76812        5             .76812
 8185         3             8.185

Все эти столбцы хранятся как INT или DEC без десятичных знаков.

Может бытьDB2 имеет что-то похожее на функцию FORMAT() SqlServer?Это маскирует значение и не делает в точности то, что я хотел бы, но все же это начало.

Спасибо

Ответы [ 2 ]

1 голос
/ 15 марта 2019

Используйте встроенные математические функции и делите на степень 10.

CAST(fieldName AS DOUBLE) / POWER(10, fieldValue)

Если вы храните эти числа таким образом, потому что числа слишком велики, то в качестве альтернативы вы можете преобразовать их в VARCHAR, тогда вы можете использовать SUBSTR().

1 голос
/ 15 марта 2019

А как насчет математического решения?

 cast(fieldName as decimal(12,6)) / power(10, fieldvalue)

Приведение просто для того, чтобы убедиться, что это десятичное поле (определение должно быть достаточно большим для ваших данных)

...