如果列具有字符串和整数值,如何通过HQL对列进行排序

时间:2014-12-12 12:31:10

标签: java hibernate sorting hql

我有一个专栏" event_number" in" event"表。 " event_number" column实际上是mysql中的varchar列。

我想根据" event_number"对数据进行排序使用HQL查询。 (休眠)。

例如数据是

event_number
1
2
M-2
4
5
K-C
6
7
8
9
10
11
TY-C

输出应为:

event_number
1
2
4
5
6
7
8
9
10
11
K-C
M-2
TY-C

输出应为:

event_number
K-C
M-2
TY-C
1
2
4
5
6
7
8
9
10
11

我使用过HQL查询:

select 
    event.eventNumber 
from 
    event 
order by 
    event.eventNumber asc;

我得到了结果:

event_number
1
10
11
2
4
5
6
7
8
9
K-C
M-2
TY-C

2 个答案:

答案 0 :(得分:4)

这将有效

select
    event.eventNumber
from
    event
order by
    cast(event.eventNumber as integer), event.eventNumber asc

“cast(event.eventNumber as integer)”仅对整数值进行排序。

“cast(event.eventNumber as integer),event.eventNumber asc”对整数和字符串值进行排序

答案 1 :(得分:1)

你可以试试这个

select cast(event.eventNumber as integer) from event order by event.eventNumber asc;