[英]convert oracle SQL to JPQL using cast and max function
我有一个这样的sql:
SELECT MAX(CAST(XX AS integer)) FROM TableA;
其中XX
是varchar2
,我想将其转换为 JPQL。 我试过了:
SELECT FUNCTION('NVL', CAST(MAX(XX) NUMERIC(10,2)), '0') FROM TableA;
和
SELECT FUNCTION('NVL', FUNCTION('TO_NUMBER', MAX(XX)), '0') FROM TableA;
但它只是不断弹出异常。 我认为我的语法是正确的,但只是不知道问题出在哪里。 有人可以提供一些建议吗? 非常感谢~~
我认为CAST
是EclipseLink 查询语言(EQL) 扩展的一部分,但不是核心 JPQL 的一部分。 如果您不支持 EQL,那么您的查询可能不起作用。 一种解决方法是仅将以下内容作为本机查询运行:
SELECT MAX(CAST(XX AS integer)) FROM TableA;
另一种可能性是将XX
列更改为数字类型。 由于您需要对该列进行数学运算,因此将其设为数字可能是有意义的。
尝试通过添加 0 来强制进行隐式转换
SELECT MAX(XX+0)) FROM TableA;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.