我有一个专栏叫 PAYMENT_REF
包含以下序列的值:
DBC2020999999999999
它总是有长度的 19
从 DBC
然后是本部分的年份: DBC2020
年后的下列数字是一个序列号 999999999999
.
基本上我需要做一个查询,只从序列号中找到最大值,忽略静态值 DBC
和年份 2020
.
基本上,当我在oracle developer ide上运行以下查询时,我得到了正确的结果:
select MAX(SUBSTR(PAYMENT_REF,7,19))
from PAYMENT p
where PAYMENT_REF is not null;
因此,我尝试了以下查询,其中looks应获得最大值:
public interface PaymentRepository extends JpaRepository<Payment, String> {
@Query(" select MAX(SUBSTRING(p.paymentRef,7,19)) from payment p where p.paymentRef is not null")
int getMaxRefNumber();
}
但我得到一个编译错误,无法解析符号:付款,有什么想法我在这里错过了请?
1条答案
按热度按时间zour9fqk1#
我想你应该用以下方法来纠正你的疑问:
如文件所述:
SUBSTRING
提取字符串值的一部分。第二个参数表示起始位置,其中1是字符串的第一个字符。第三个(可选)参数表示长度。p、 老实说,我无法在hql中将字符串转换为数字。
声明如下:
将不起作用,出现以下异常: