我有这些行和数据库,我想按顺序排序,但按照下面的顺序添加字符和数字。 colum Score是varchar。 WINNER和LOSER也在得分列中。
得分
WINNER
100+
100
90
80+
80
50
LOSER
答案 0 :(得分:1)
此方法在订购时将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,000 LOSER
= -100,000 number+
=号码* 100 + 99 number
=数字