如何在字符变化列上对Spring Data JPA存储库进行排序

时间:2018-08-17 11:37:43

标签: spring jpa spring-data-jpa spring-repositories

嗨,我们正在使用java中的postgress数据库和spring数据jpa存储库来使用数据。现在,我们有一个类型为“字符变化(255)”的列(版本),并且该列的数据为val1 = 11.0.2000.78val2 = 11.0.2000.301

当我们使用spring数据jpa存储库触发降序查询时,它会在val1上方列出值val2。实际上,它应该在val2上方列出val1

我们知道,由于column是字符类型,因此考虑将7大于3也是问题。有什么解决办法吗?

我们希望在此类值的字符类型列上进行数字排序。 spring数据jpa存储库中有什么方法可以处理?

1 个答案:

答案 0 :(得分:0)

CREATE TABLE tableone
(
    test text
) ;


INSERT INTO tableone(test) VALUES('11.0.2000.78');
INSERT INTO tableone(test) VALUES('11.0.2000.301');


select * from tableone order by test desc;

SELECT
   test
FROM
    tableone order by 
    ( CAST(
        COALESCE(
            NULLIF(
                replace(test, '.', ''), 
                ''),
            '0') 
       AS numeric) ) desc;