sql - 红移将十进制转换为十进制
问题描述
为什么将小数转换为小数会丢失所有小数?例如,
SELECT 1.5::DECIMAL
退货2
解决方案
十进制数具有精度(整数中有效数字的总数)和小数位数(小数位数)。
在 Redshift 中,默认精度为18
,但默认比例为0
,并且在投射时应用自动舍入,如文档中所述:
规模
值的小数部分中的小数位数,小数点右侧。[...]如果未指定,默认比例为 0。
[...]
如果加载到表中的输入值的比例大于列的比例,则将该值四舍五入到指定的比例。
因此,您需要在投射时指定比例,例如:
SELECT CAST(1.5 AS DECIMAL(10, 5))
推荐阅读
- javascript - 如何从 JSON 文件在 OpenLayers 中绘制点类型几何图形
- angularjs - 当我们已经在 MEAN Stack 中学习了 Angular 时,是否还需要在 express 中学习视图和模板引擎
- amazon-web-services - 无法在 EC2 实例上上传图像?
- d3.js - D3 - 使用图表中的数据添加数据点
- python - 为格式化文本文件而编写的代码中的小错误(间距不正确)(Python 3)
- docker - dockerhub 从单个 repo 自动构建,单个 dockerfile 构建多个图像
- php - 电影数据库中的列表,超链接不起作用
- javascript - 将我自己的参数添加到 Facebook 登录弹出窗口
- python-2.7 - TypeError:'bool' 对象不可迭代:Google Analytics API
- rabbitmq - 监听器没有按顺序接收到 RabbitMQ 消息