gpt4 book ai didi

sql - 从sql中的字符串中提取最大值

转载 作者:行者123 更新时间:2023-11-29 13:02:24 28 4
gpt4 key购买 nike

我使用 PostgreSQL,我想用这个查询提取最大值:

select max (num_ordre_decision) from decision

问题是 num_ordre_decision 包含这种数据:

'4/35/677'
'4/35/1001'

我的列的类型是String。当我运行这个查询时,我得到了最大值:

'4/35/1001'

这是

我只想将 6771001 进行比较,以便在前一种情况下获得最大值 '4/35/677' .

我认为我应该在查询中使用拆分

更新

我试过这个查询:

select max(split_part(num_ordre_decision, '/', 3))
from decision;

我有这个值:'99'

当我尝试运行这个查询时

select split_part(num_ordre_decision, '/', 3)
from decision;

我得到了这个结果

''
''
'677'
'1001'
'99'

出现这个结果''是因为表中的真实值不包含分隔符'/'。我认为 max(split_part(num_ordre_decision, '/', 3) 使总和意味着它使 9+9。但正确的结果应该是 1001

因此必须将它们作为数字进行比较。

更新:

我想在我的项目中使用这个查询

我有这个功能:

 public List getMaxNumOrder (){

String query= "select max(NULLIF(split_part(num_ordre_decision, '/', 3), '')::int) from decision";

SQLQuery sqlQuery = this.getSession().createSQLQuery(query);

return sqlQuery.list();

}

但是当我遇到这个错误时:

org.hibernate.QueryException: Not all named parameters have been set: [:int] [select max(NULLIF(split_part(num_ordre_decision, '/', 3), '')::int) from decision]
at org.hibernate.impl.AbstractQueryImpl.verifyParameters(AbstractQueryImpl.java:339)
at org.hibernate.impl.SQLQueryImpl.verifyParameters(SQLQueryImpl.java:228)

我认为我应该使用:query.setParameter

我不知道怎么用

最佳答案

您可以获得最大值:

select max(split_part(num_ordre_decision, '/', 3))
from decision;

要获得总体最大值,您可能需要:

select num_ordre_decision
from decision
order by split_part(num_ordre_decision, '/', 3) desc
limit 1;

关于sql - 从sql中的字符串中提取最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25770767/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com