Сортировать таблицу по целому значению, хранящемуся в поле varchar - PullRequest
0 голосов
/ 14 декабря 2010

я работаю весной в спящем режиме
В моей базе данных есть столбец типа VARCHAR, но в нем хранится целочисленное значение. Так что, если я sort использует sql или hql или Criteria(Order.asc), все сортируют его как строку. Мне нужно, чтобы он был отсортирован как целочисленное значение, которое он хранит. Здесь я не могу изменить свою таблицу.
Есть в любом случае, чтобы отсортировать его как целое число, используя Criteria
Это единственное решение для меня, после чтения его в некоторый список и сортировки внутри моего сервиса?

Отредактировано: я использую MYSQL

Спасибо

Ответы [ 2 ]

1 голос
/ 14 декабря 2010

Вы можете попробовать разыграть его перед сортировкой.В mysql что-то вроде этого:

SELECT CAST(myVarcharField AS DECIMAL(10)) as myIntField order by myIntField; 

или в виде целого без знака:

SELECT CAST(myVarcharField AS UNSIGNED) as myIntField order by myIntField; 

приведение выглядит как действительное выражение HQL тоже.

0 голосов
/ 14 декабря 2010

SQL:

SELECT CAST(t.order AS UNSIGNED INTEGER) AS intOrder 
    FROM myTable t ORDER BY intOrder ASC
...