当列是整数和小数的混合时,创建表时使用哪种数据类型?
Posted
技术标签:
【中文标题】当列是整数和小数的混合时,创建表时使用哪种数据类型?【英文标题】:Which data type to use while creating table when column is a mix of whole numbers as well as decimals? 【发布时间】:2019-09-07 12:47:45 【问题描述】:我正在在 Redshift 中创建一个表(基于 PostgreSQL),该表的源数据的几列是整数和小数的混合。
如果我设置小数(5,5)它会抛出整数错误,如果我设置整数它会抛出小数错误,哪种类型适合两者?
【问题讨论】:
数字(5,5)....decimal
中的第二个数字(刻度)是什么意思?你读过文档吗?
Scale 是小数点右侧的小数部分的小数位数。我认为您没有得到我的问题。我想要一个类型来处理同一列的整数和小数类型。
对,所以你需要一个可以同时存储before和after小数点的数字的东西。因此,将比例设置为等于精度不会让您这样做,因为它表示所有数字都必须在小数点之后。
知道了,伙计!我错过了非常基本的小数点(i + d,d),并错误地做小数(d,d)。谢谢!
【参考方案1】:
您需要多少位整数才能合理地存储?拨打该号码i
。
小数点后需要多少位数?拨打该号码d
。
您现在知道您需要decimal(i+d,d)
。但是您需要检查这种组合在文档中是否有效。如果是,那就太好了。如果不是,您需要权衡一些数字才能得到可接受的结果。
【讨论】:
以上是关于当列是整数和小数的混合时,创建表时使用哪种数据类型?的主要内容,如果未能解决你的问题,请参考以下文章
oracle我建表时的数据类型是int,为啥插值的时候小数照样能插不报错?