0

diplayPriceであるフィールドを持つテーブルがありますvarchar10.90 EURフィールドは、など3.90 EURで埋められ119.00 EURます。

どうすればこれを並べ替えることができますか?

たとえば、次のようないくつかのことを試しました。

Select * From produkte ORDER BY length('DisplayPrice') 

Select * From produkte ORDER BY CAST(`DisplayPrice` AS SIGNED)

前もって感謝します。

4

3 に答える 3

0

または、簡単に注文できるように 10 進数に変換するだけです。

SELECT *  
FROM produkte  
ORDER by Cast(LEFT(DisplayPrice,LENGTH(DisplayPrice)-4) as dec(10,2))

しかし、ここで通貨を削減する必要があります。より柔軟にするために、これを別の列に配置することをお勧めします(つまり、並べ替え;))

于 2012-06-27T07:14:26.290 に答える
0

このクエリを試してください -

SELECT * FROM produkte ORDER BY DisplayPrice * 1

DisplayPrice を数値に変換すると役立ちます。

于 2012-06-27T07:07:33.347 に答える
0

部分文字列を使用して、数字のみを含む部分を取得して並べ替えることができます。これはテストされていません。

select *,substring_index(displayPrice,' ',1) as displayPriceVal ...... order by displayPriceVal
于 2012-06-27T07:08:18.433 に答える