1

在任何人大喊大叫之前,是的,我知道在我引用的数据库中存储为 varchars 的数字是愚蠢的,但我对此无能为力。基本上,我有一列主要是存储为 varchar 的整数,但是在将整列转换为稍后可以正确排序的某种数字形式时,我需要保留一些带小数的值。如果我只是按原样选择数据,它的排序如下: 1, 10, 11, 12, 13, 2, 2.1, 3 我需要它是 1, 2, 2.1, 3, 10, 11, 12, 13 但是我需要保持 2 和 2.1 或 2.01 之间的区别。小数点前后不应该有超过 2 位的数字。我试过 Convert(Decimal, column1) AS 'Column_Name' 但这使得所有 2.1 都变成了 2,所以有 1、2、2、3 等。想法?

4

1 回答 1

0

Convert(Decimal, column1) 与 Convert(Decimal(M,0), column1) 相同,其中 M 是依赖于操作系统的数字,但 0 表示不会保留小数点右侧的任何数字。请改用 Convert(Decimal(X,2), column1),其中 X 是一个足够高的数字来处理列中的数字。

于 2015-10-14T14:32:13.203 回答