我正在尝试执行以下查询:
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由于某种原因不喜欢我的查询。