您可以合并ltrim
和cast
以获取要排序的实际数字:
select * from table order by cast(ltrim(price, '$') as numeric) desc
注意,如果您有多种货币,ltrim
也可以。只需将它们排成一行,如'$€'
。 ltrim
从左侧删除任何和所有字符,直到它击中不在该字符串中的字符。
穆罕默德,理想情况下,您应该将价格存储为货币/小数/数字数据类型,并在UI上附加“$”。 Eric的解决方案可以解决您的问题,但随着系统的发展,这些选择的性能会越来越差。