spring - 如何在字符变化列上对spring数据jpa存储库进行排序
问题描述
嗨,我们在 java 中使用 postgress 数据库和 spring data jpa 存储库来使用数据。现在我们有一列(版本)类型为“字符变化(255)”,列的数据val1 = 11.0.2000.78
为val2 = 11.0.2000.301
当我们使用 spring data jpa 存储库触发降序排序查询时,它会val1
在val2
. 实际上它应该val2
在val1
.
我们知道,由于列是字符类型,因此它正在考虑 7 大于 3,所以问题就在于此。有什么解决方案吗?
我们希望对此类值的字符类型列进行数字排序。有什么方法可以在 spring data jpa repository 中处理?
解决方案
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;
推荐阅读
- c - fgets 将换行符放在缓冲区的末尾
- python - 是否可以从其他模型打印报告?
- python - 对象没有属性“is_valid”
- django - 获取唯一字段错误时如何更新Django中的数据
- rust - 如何从特征对象获取对具有生命周期注释的结构的引用?
- html - R Markdown kable表使用$登录列名进行html输出
- c++ - 指针值的差异
- laravel - Laravel 7 - 如何将请求数组循环到控制器以用 eloquent 附加数据
- javascript - alasql导出的excel公式不起作用
- r - 过滤/子集空单元格“”与 NA。为什么子集(df,x =='')不是子集(df,x!='')的对立面。dplyr 或 base 中的错误?