使用Jooq以数字为基础,通过varchar字段(具有数值)对查询进行排序

时间:2011-04-25 04:03:17

标签: sql sql-order-by varchar jooq

我如何对varchar字段进行排序,我将ID作为varchar,我想用数字排序。

我们可以使用

在SQL中执行此操作
sql query ... order by 0+id desc

我在Jooq所拥有的是

SimpleSelectFinalStep<ScoreCardRecord> q = factory.selectFrom(ScoreCard.SCORE_CARD)
                    .orderBy(OloScoreCard.SCORE_CARD_ID.descending())
                    .limit(0,1);

1 个答案:

答案 0 :(得分:1)

您是否尝试将VARCHAR字段转换为数字DataType?你可以这样做:

factory.selectFrom(ScoreCard.SCORE_CARD)
       .orderBy(OloScoreCard.SCORE_CARD_ID.cast(Integer.class).descending())
       .limit(0, 1);

这样你可以省略使用“普通SQL字段”