我需要实现一种数据类型,它应该在 SQL Server 2008 R2 中保留小数点的最后一个零。数据示例是
1.002
1.210
0.00100
0.1401
我的客户会得到这样的实验室测量结果,小数点后的数字表明实验室使用的仪器类型、方法等。他们需要按原样存储数据(1.210 不是 1.21)。现在我有一个自定义数据类型,它实现了 varchar 类型作为基本类型,但开发人员不喜欢它,因为使用数学运算符的转换涉及一些开销。是否有任何数字类型的解决方案来处理此类问题?
我需要实现一种数据类型,它应该在 SQL Server 2008 R2 中保留小数点的最后一个零。数据示例是
1.002
1.210
0.00100
0.1401
我的客户会得到这样的实验室测量结果,小数点后的数字表明实验室使用的仪器类型、方法等。他们需要按原样存储数据(1.210 不是 1.21)。现在我有一个自定义数据类型,它实现了 varchar 类型作为基本类型,但开发人员不喜欢它,因为使用数学运算符的转换涉及一些开销。是否有任何数字类型的解决方案来处理此类问题?
我会将其存储为两个不同的 INT/BIGINT,一个用于小数点的每一侧。为了便于查询,您还可以添加一个将数据呈现为 varchar 的计算列。换句话说:
或者,添加更多计算列以存储为浮点数或您可能需要计算的其他格式。
我相信更好的答案是马丁的答复。我会使用 2 列:一个 numeric(x,y) 和一个 smallint 来保留原始比例。
与 int.int 或 varchar 解决方案相比,它具有以下优点: