0

我有这些行 y DB,我想按以下顺序排序,但要按以下顺序排列字符和数字。列分数是一个 varchar。WINNER 和 LOSER 也在 Score 列中。

分数

WINNER
100+
100
90
80+
80
50
LOSER
4

1 回答 1

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= 数字
于 2013-06-11T13:34:12.587 回答