我有一列称为价格的列,所有值都是TEXT,因此像这样:“ $ 26.71”。
我想按降序对该列进行排序,但是我不能,因为该列未定义为INTEGER,并且在所有值前面都有一个“ $”字符。
为了使这项工作我应该怎么做?
谢谢。

最佳答案

您可以结合使用ltrimcast来获取实际数字,并根据该数字进行排序:

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


请注意,如果您使用多种货币,ltrim也可以使用。只需将它们全部对齐,例如'$€'ltrim从左侧删除所有字符,直到它碰到不在该字符串中的字符为止。

关于sqlite - SQLite按价格排序不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1311450/

10-10 07:29