我有这些行 y DB,我想按以下顺序排序,但要按以下顺序排列字符和数字。列分数是一个 varchar。WINNER 和 LOSER 也在 Score 列中。
分数
WINNER
100+
100
90
80+
80
50
LOSER
我有这些行 y DB,我想按以下顺序排序,但要按以下顺序排列字符和数字。列分数是一个 varchar。WINNER 和 LOSER 也在 Score 列中。
分数
WINNER
100+
100
90
80+
80
50
LOSER
这种方法score
在订购时将值转换为数字。我用你的数据尝试了它,然后用你的数据加上附加值,它两次都有效:
SELECT score
FROM myTable
ORDER BY
CASE
WHEN score = 'WINNER' THEN 100000
WHEN score = 'LOSER' THEN -100000
WHEN score LIKE '%+' THEN score * 100 + 99
ELSE score * 100
END DESC
转换如下:
WINNER
= 100,000LOSER
= -100,000number+
= 数字 * 100 + 99number
= 数字