2010-12-14 17 views
0

私は春の休止状態で動作しています
私のデータベーステーブルには、タイプがVARCHARのカラムがありますが、整数値が格納されています。だからsortsqlまたはhqlまたはCriteria(Order.asc)を使用している場合、すべてが文字列としてソートされています。私はそれが格納する整数値としてソートする必要があります。ここで私は私のテーブルを変更することはできません。
整数としてソートするにはどうすればいいですかCriteria
私の唯一の解決策は、いくつかのリストを読み、サービス内でソートした後ですか?varcharフィールドに格納された整数値でテーブルをソート

は編集:私は

MYSQLを使用してあなたがそれをソートする前に、それをキャストしようとすることができ、あなたに

+1

あなたは、あなたのデータベースに依存し、データベース内のintに文字列を変換することができます。 MySQLの場合(例として)、あなたは 'convert()'と 'cast()' – cristian

+0

データベースを持っていますか? –

答えて

1

ありがとうございます。 mysqlのでは、このような何か:

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

または符号なし整数として:

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

キャストがあまりにも有効HQL expressionように見えます。

+0

このクエリはネイティブSQLのように見えますが、これはHQLまたはCriteriaでも可能ですか? – Ralph

+0

ネイティブのmySQLです。この質問は、そうではないと明示的に指定しています。 – Joel

+0

お返事ありがとうございます。これを基準に使用する方法はありますか? –

0

SQL:

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

お返事ありがとうございます。これを基準に使用する方法はありますか? –

関連する問題