【发布时间】:2021-11-22 11:46:05
【问题描述】:
我有一个这样的字段
table A {text varchar(255) }
有这样的条目
text => A$123.34
text => A$10.34
text => $15.45
我想对它们进行排序,以便它们列出
A$10.34
$15.45
A$123.34
我已经尝试了许多在这里发布的解决方案 - 转换为十进制、值 * 1、值 + 0 等,但它们都失败了。我确实找到了一个非常接近的:
select text as num from Table A order by substring(num,2) desc
这给了
A$10.34
A$123.34
$15.45
我知道这是因为子字符串正在查找两个字符,而最后一个条目只有一个,但我不知道如何解决这个问题。有谁知道如何按我的意愿排序?
在我看到的大多数帖子中,都说只将值存储为数字。这是不可能的,因为它需要在项目中进行大量更改。
【问题讨论】:
-
ORDER BY 0 + substring(num, 2) -
我会将 A$(或任何其他类型的前缀)保存在另一列中,然后按此新列+金额排序,然后将两者连接起来输出
-
感谢您的建议,但如上所述,这不是一个选择。
-
我尝试添加 0 + 建议,但它使列表的排序减少。我很感激这个建议。