繁体   English   中英

使用 cast 和 max 函数将 oracle SQL 转换为 JPQL

[英]convert oracle SQL to JPQL using cast and max function

我有一个这样的sql:

SELECT MAX(CAST(XX AS integer)) FROM TableA; 

其中XXvarchar2 ,我想将其转换为 JPQL。 我试过了:

SELECT FUNCTION('NVL', CAST(MAX(XX) NUMERIC(10,2)), '0') FROM TableA;

SELECT FUNCTION('NVL', FUNCTION('TO_NUMBER', MAX(XX)), '0') FROM TableA;

但它只是不断弹出异常。 我认为我的语法是正确的,但只是不知道问题出在哪里。 有人可以提供一些建议吗? 非常感谢~~

我认为CASTEclipseLink 查询语言(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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM