我在春天工作休眠
我的数据库表中有列,类型为VARCHAR
,但它存储整数值。因此,如果我sort
使用sql
或hql
或Criteria(Order.asc)
,则所有人都将其排序为字符串。我需要将它排序为它存储的整数值。在这里,我不能改变我的桌子
无论如何使用Criteria
来将其排序为整数
对我来说唯一的解决方案是,在将其读入某个列表并在我的服务中进行排序之后?
编辑:我使用MYSQL
谢谢
答案 0 :(得分:1)
您可以在排序之前尝试将其投射。在 mysql 中,类似这样:
SELECT CAST(myVarcharField AS DECIMAL(10)) as myIntField order by myIntField;
或作为无符号整数:
SELECT CAST(myVarcharField AS UNSIGNED) as myIntField order by myIntField;
施放似乎也是有效的HQL expression。
答案 1 :(得分:0)
SQL:
SELECT CAST(t.order AS UNSIGNED INTEGER) AS intOrder
FROM myTable t ORDER BY intOrder ASC