Java.sql - 将CAST嵌套到MAX时出错

时间:2013-12-11 23:02:08

标签: java mysql sql

我正在尝试执行以下查询:

select MAX(CAST(T.progress AS DECIMAL)) as maxProgress from default_APN_TRACKING T where T.smartlet = 'Life-Pension Selector' GROUP BY T.trackingId

这引发了以下异常:

java.lang.Exception: Exception on sql query:select MAX(CAST(T.progress AS DECIMAL)) as maxProgress from default_APN_TRACKING T where T.smartlet = 'Life-Pension Selector' GROUP BY T.trackingId

基本上,我得到了一张带有跟踪ID的表,以及一个表示进度的字符串(“100.0”,“66.6”,“33.3”,......)。对于每个trackingId,我希望获得最高的进展。

我同意整数会更加敏感,但这是我必须要处理的约束。所以我尝试使用CAST。还尝试了CAST(T.progress AS DECIMAL(10,5))但没有成功。

没有CAST的相同查询工作正常,但按字母顺序排序(“66.6”>“100.0”)。我应该如何解决这个问题?

感谢您的帮助!

编辑:直接在SQL WorkBench中复制相同的查询非常有效。看起来像Java.sql由于某种原因不喜欢我的查询。

0 个答案:

没有答案