2009-08-21 10 views
1

私は価格と呼ばれる列を持っており、このようにすべての値は "$ 26.71"です。 この列を降順でソートしたいのですが、列がINTEGERとして定義されておらず、すべての値の前に "$"文字があるため、できません。 この作業を行うにはどうすればよいですか?おかげさまで 価格でSQLiteの並べ替えが動作しません

答えて

5

あなたはソートするから、実際の数値を得るためにltrimcastを組み合わせることができます:あなたは複数の通貨を持っている場合

select * from table order by cast(ltrim(price, '$') as numeric) desc 

注、ltrimも動作します。 '$€'のように、それらのすべてを並べるだけです。 ltrimは、その文字列にない文字にヒットするまで、すべての文字を左側から削除します。

2

Mehmet、理想的には、価格を通貨/小数/数値データ型として格納し、UIに「$」を追加する必要があります。エリックのソリューションはすぐに問題になりますが、システムが成長するにつれて、これらの選択肢のパフォーマンスは悪化します。

関連する問題