java - Oracle 通过 JPA 排序,数字在前

标签 java oracle hibernate jpa oracle-sqldeveloper

我的数据库中有这样的列数据

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/

相关文章:

java - Antlr4 解析器中缺少变量

oracle - Apache HTTP 服务器与 Oracle HTTP 服务器

wcf - 在 Windows 2008 R2 64 位和 WCF 上运行 Oracle

java - org.hibernate.Session 的 Save 方法未将数据保存在数据库中

java - 从 Hibernate 3 迁移到 Hibernate4 不断获取不支持的嵌套事务

java - Spring的@JmsListener只从Solace队列接收一条消息

java - Keycloak - 重置密码时未显示用户未找到消息信息

java - libGDX:ClickListener 中的延迟

mysql - 使用 SQL Developer 从 MySQL 表中 SELECT INTO Oracle SQL 表

hibernate - Spring Data JPA、Hibernate Vendor、 Multi-Tenancy 和 Postgresql