0

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

当我们使用 spring data jpa 存储库触发降序排序查询时,它会val1val2. 实际上它应该val2val1.

我们知道,由于列是字符类型,因此它正在考虑 7 大于 3,所以问题就在于此。有什么解决方案吗?

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

4

1 回答 1

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;
于 2018-08-17T13:34:23.833 回答