我的数据库中有这样的列数据
data
-----
1
2
A
3
4
B
我有以下 nls 设置
SELECT * From NLS_SESSION_PARAMETERS;
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN
NLS_SORT BINARY
NLS_COMP BINARY
当我在数据库中查询 **select data from <mytable> order by data **
时我得到的结果如下
data
-----
1
2
3
4
A
B
通过 hibernate 进行的相同查询给出的结果是字母在前,数字在后
data
-----
A
B
1
2
3
4
但是,我希望通过 hibernate 先显示数字,后显示字母
data
------
1
2
3
4
A
B
有人可以帮我解决这个问题吗?
最佳答案
可以使用正则表达式这样排序,
select data from <mytable> order by REGEXP_REPLACE(data ,'[^0-9]'), REGEXP_REPLACE(data ,'[0-9]')
关于java - Oracle 通过 JPA 排序,数字在前,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62325425/