Сортировать запрос по полю varchar (которые имеют числовые значения) на числовой основе с помощью Jooq - PullRequest
1 голос
/ 25 апреля 2011

Как мне отсортировать поле varchar, я взял идентификатор как 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 Ответ

1 голос
/ 25 апреля 2011

Вы пытались преобразовать свое поле VARCHAR в числовое значение DataType? Вы можете сделать это так:

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

Таким образом, вы можете опустить использование "простых полей SQL"

...