我有一列称为价格的列,所有值都是TEXT,因此像这样:“ $ 26.71”。
我想按降序对该列进行排序,但是我不能,因为该列未定义为INTEGER,并且在所有值前面都有一个“ $”字符。
为了使这项工作我应该怎么做?
谢谢。
最佳答案
您可以结合使用ltrim
和cast
来获取实际数字,并根据该数字进行排序:
select * from table order by cast(ltrim(price, '$') as numeric) desc
请注意,如果您使用多种货币,
ltrim
也可以使用。只需将它们全部对齐,例如'$€'
。 ltrim
从左侧删除所有字符,直到它碰到不在该字符串中的字符为止。关于sqlite - SQLite按价格排序不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1311450/