1

请我有一个包含一些值(文本以及一些 int 或 float 值)的字段值(文本类型)。

所以我只想选择 float 和 integers 值并按字段value排序主题。

目前我可以单独获得浮点数,但问题是结果我以文本格式而不是浮点或整数格式排序主题(我猜这很正常)。例子 :

33
33358
80
88000
90
99

请大师们,我怎么能告诉我的查询将结果视为浮点数而不是文本并得到这个结果:

33
80
90
99
33358
88000

提前致谢

4

4 回答 4

12
ORDER BY field * 1

或者

ORDER BY CAST(field as DECIMAL(10,5))

两者都应该做同样的事情,但第一个更容易/更快地编写。

于 2012-12-18T08:43:10.237 回答
3

像下面的代码一样使用

ORDER BY ABS(columnname)
于 2012-12-18T08:42:34.273 回答
1

在文本类型的字段中存储混合值不是一个好主意。如果您想对字段进行排序和过滤,我建议将它们用作单独的字段 - text、int、float 等。
如果您作为数据库管理员深入,它将有负面的性能。

于 2012-12-18T09:03:42.277 回答
0

当您在查询中选择该变量然后按该列对结果集进行排序时,将 VALUE 转换为浮点/整数格式。

eg./ SELECT CAST(value as decimal(10,5)) AS customname FROM tablename order by customname

记住,你可以投射到任何你想要的东西。

于 2012-12-18T08:52:16.363 回答