【问题标题】:JPQL: convert varchar to numberJPQL:将 varchar 转换为数字
【发布时间】:2013-12-10 08:27:34
【问题描述】:

如何在 JPQL 中将 varchar 转换为数字???

我设法用这个查询在 sql (Oracle) 中做到了这一点:

SELECT Decode(Upper(column_name), Lower(column_name), To_Number(column_name), -1)
FROM table

我想用 JPQL 做这个转换。

感谢您的帮助

【问题讨论】:

    标签: java hibernate jakarta-ee jpa jpql


    【解决方案1】:

    你可以做下一个:

    CAST(e.salary AS NUMERIC(10,2))
    

    另外,你可以试试:

    • FUNC('TO_NUMBER', e.areaCode)FUNC 允许从 JPQL 调用数据库函数。

    • SQL('CAST(? AS CHAR(3))', e.areaCode)SQL 允许在 JPQL 中使用和集成 SQL。

    【讨论】:

    • 感谢您的帮助 FUNC('TO_NUMBER', e.areaCode) 工作得很好,但有一个例外:当我有 java.sql.SQLException 时,例如 '123TA' 作为 e 的值.areaCode 在数据库中。我解释了我的目标:我在数据库中的表的数据是:第 2 列 5 AA 8 TT 在 JPQL 我想选择“列”的最大值,结果是 8
    • 请注意,除非我错了,FUNC()SQL() 是特定于 eclipselink 的。然而 FUNCTION() 是在 JPA 2.1 (JEE7) 中引入的,它在可移植的同时替换了 FUNC()。另见java-persistence-performance.blogspot.com/2012/05/…
    猜你喜欢
    • 2011-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-19
    • 2011-02-01
    • 2020-10-26
    相关资源
    最近更新 更多